From 2a138f774a2dc658d690f3cd8189603d8a037c47 Mon Sep 17 00:00:00 2001 From: chfhtw Date: Fri, 11 Sep 2026 11:23:47 +0200 Subject: [PATCH] Studiengang allowed endpoint --- .../v1/organisation/StudiengangEP.php | 25 ++++++++++++++++++- public/js/api/factory/studiengang.js | 12 ++++++++- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/application/controllers/api/frontend/v1/organisation/StudiengangEP.php b/application/controllers/api/frontend/v1/organisation/StudiengangEP.php index 463243f57..691c45587 100644 --- a/application/controllers/api/frontend/v1/organisation/StudiengangEP.php +++ b/application/controllers/api/frontend/v1/organisation/StudiengangEP.php @@ -23,7 +23,8 @@ class StudiengangEP extends FHCAPI_Controller { parent::__construct( array( - 'getStudiengangByKz' => self::PERM_LOGGED + 'getStudiengangByKz' => self::PERM_LOGGED, + 'getAllowed' => self::PERM_LOGGED, ) ); // Load model StudiengangModel @@ -54,4 +55,26 @@ class StudiengangEP extends FHCAPI_Controller } $this->terminateWithSuccess($stg); } + + /** + * @return void + */ + public function getAllowed() + { + $this->load->library('form_validation'); + + $this->form_validation->set_rules('permissions[]', 'Permissions', 'required'); + + if (!$this->form_validation->run()) + $this->terminateWithValidationErrors($this->form_validation->error_array()); + + $permissions = $this->input->post('permissions'); + + $permittedStgs = []; + + foreach ($permissions as $permission) + $permittedStgs = array_merge($permittedStgs, $this->permissionlib->getSTG_isEntitledFor($permission) ?: []); + + $this->terminateWithSuccess($permittedStgs); + } } diff --git a/public/js/api/factory/studiengang.js b/public/js/api/factory/studiengang.js index 6d5ae15aa..39ef22f04 100644 --- a/public/js/api/factory/studiengang.js +++ b/public/js/api/factory/studiengang.js @@ -28,5 +28,15 @@ export default { url: '/api/frontend/v1/organisation/StudiengangEP/getStudiengangByKz', params: { studiengang_kz } }; - } + }, + getAllowed(permissions) { + if (!Array.isArray(permissions)) + permissions = permissions.split(','); + + return { + method: 'post', + url: '/api/frontend/v1/organisation/StudiengangEP/getAllowed', + params: { permissions } + }; + }, }; \ No newline at end of file