diff --git a/build/api/core/AuthSystemDefault.php b/build/api/core/AuthSystemDefault.php index 9c24b07..04942a1 100644 --- a/build/api/core/AuthSystemDefault.php +++ b/build/api/core/AuthSystemDefault.php @@ -23,10 +23,11 @@ /* (1) Init session variables ---------------------------------------------------------*/ - if( !isset($_SESSION['CAS']) || !is_array($_SESSION['CAS']) ) $_SESSION['CAS'] = []; - if( !isset($_SESSION['AUTH']) || !is_array($_SESSION['AUTH']) ) $_SESSION['AUTH'] = []; - if( !isset($_SESSION['AvailableDepartment']) || !is_array($_SESSION['AvailableDepartment']) ) $_SESSION['AvailableDepartment'] = []; - if( !isset($_SESSION['VERSION']) || !is_string($_SESSION['VERSION']) ) $_SESSION['VERSION'] = null; + if( !isset($_SESSION['CAS']) || !is_array($_SESSION['CAS']) ) $_SESSION['CAS'] = []; + if( !isset($_SESSION['AUTH']) || !is_array($_SESSION['AUTH']) ) $_SESSION['AUTH'] = []; + if( !isset($_SESSION['AvailableDepartments']) || !is_array($_SESSION['AvailableDepartments']) ) $_SESSION['AvailableDepartments'] = []; + if( !isset($_SESSION['VERSION']) || !is_string($_SESSION['VERSION']) ) $_SESSION['VERSION'] = null; + if( !isset($_SESSION['CurrentDepartmentId']) || !is_array($_SESSION['CurrentDepartmentId']) ) $_SESSION['CurrentDepartmentId'] = null; /* (2) Process AUTH diff --git a/build/api/module/casController.php b/build/api/module/casController.php index d2c6e2e..58c4b70 100644 --- a/build/api/module/casController.php +++ b/build/api/module/casController.php @@ -119,7 +119,7 @@ class casController{ return [ 'headers' => $headers, 'body' => $body_start.'-3'.$body_end ]; /* (3) Set departments data */ - $_SESSION['AvailableDepartment'] = $departments; + $_SESSION['AvailableDepartments'] = $departments; /* (4) Choose first department by default */ $_SESSION['CurrentDatabase'] = $departments[0]['dbName']; diff --git a/build/api/module/departmentController.php b/build/api/module/departmentController.php index 2c3035b..0803ca9 100644 --- a/build/api/module/departmentController.php +++ b/build/api/module/departmentController.php @@ -16,25 +16,33 @@ class departmentController { public function put($args){ - $department = 0; - extract($args); + /** @var professor $prof_repo */ $prof_repo = Repo::getRepo('professor'); + + $deps = $prof_repo->getLinkedDepartments($_SESSION['CAS']['login']); + + if( count($deps) > 0 ){ - foreach ($deps as $dep){ - if($dep["idDep"] == $department){ - $_SESSION["AvailableDepartment"] = $deps; - $_SESSION['CurrentDatabase'] = $dep["dbName"]; - $_SESSION['CurrentDepartementId'] = $dep["idDep"]; + + foreach($deps as $dep){ + + if( $dep['idDep'] == $department){ + + $_SESSION['AvailableDepartments'] = $deps; + $_SESSION['CurrentDatabase'] = $dep['dbName']; + $_SESSION['CurrentDepartmentId'] = $dep['idDep']; return ['switched' => true]; + } + } } diff --git a/build/router/controller/js.php b/build/router/controller/js.php index 4dabea1..4de8585 100644 --- a/build/router/controller/js.php +++ b/build/router/controller/js.php @@ -30,8 +30,8 @@ 'session' => [ 'name' => $_SESSION['CAS']['login'], 'connected' => isset($_SESSION['AUTH']) ? count($_SESSION['AUTH']) > 0 : false, - 'departments' => array_map(function($d){ return [ 'id' => $d['idDep'], 'label' => $d['labelDep']]; }, $_SESSION['AvailableDepartment']), - 'department_id' => $_SESSION['CurrentDepartementId'], + 'departments' => array_map(function($d){ return [ 'id' => $d['idDep'], 'label' => $d['labelDep']]; }, $_SESSION['AvailableDepartments']), + 'department_id' => $_SESSION['CurrentDepartmentId'], 'version' => $_SESSION['VERSION'] ]