diff options
| author | Rasmus Fuhse <fuhse@data-quest.de> | 2024-05-02 09:49:31 +0000 |
|---|---|---|
| committer | Rasmus Fuhse <fuhse@data-quest.de> | 2024-05-02 09:49:31 +0000 |
| commit | a756b09921d5f21ed4e8d90ecd0f7eb879d591bd (patch) | |
| tree | e339b2de963d5217499af81473ee6cb59a5787d7 /app/controllers/admin | |
| parent | 27b722116b6e60d16a0fa4a9bd47ff2ac8487f08 (diff) | |
Resolve "Verwaltung von Veranstaltungen: Lehrendenfilter wird angewendet, obwohl das nicht angezeigt wird"
Closes #4053
Merge request studip/studip!2946
Diffstat (limited to 'app/controllers/admin')
| -rw-r--r-- | app/controllers/admin/courses.php | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/app/controllers/admin/courses.php b/app/controllers/admin/courses.php index d0e2d53..5ae810d 100644 --- a/app/controllers/admin/courses.php +++ b/app/controllers/admin/courses.php @@ -535,12 +535,42 @@ class Admin_CoursesController extends AuthenticatedController if (isset($filters[$key])) { $config->store($field, $filters[$key]); } + unset($filters[$key]); + } + + if ($config->ADMIN_COURSES_TEACHERFILTER) { if (!$config->MY_INSTITUTES_DEFAULT) { $config->delete('ADMIN_COURSES_TEACHERFILTER'); + } else { + $exists = InstituteMember::countBySQL("INNER JOIN `auth_user_md5` USING (`user_id`) WHERE `user_inst`.`user_id` = :user_id AND `user_inst`.`Institut_id` = :institut_id AND `auth_user_md5`.`perms` = 'dozent' ", [ + 'user_id' => $config->ADMIN_COURSES_TEACHERFILTER, + 'institut_id' => $config->MY_INSTITUTES_DEFAULT + ]) > 0; + if (!$exists) { + $config->delete('ADMIN_COURSES_TEACHERFILTER'); + } + } + } + if ($config->MY_COURSES_SELECTED_STGTEIL) { + if (!$config->MY_INSTITUTES_DEFAULT) { $config->delete('MY_COURSES_SELECTED_STGTEIL'); + } else { + $statement = DBManager::get()->prepare(" + SELECT 1 + FROM `mvv_stg_stgteil` + INNER JOIN `mvv_studiengang` ON (`mvv_stg_stgteil`.`studiengang_id` = `mvv_studiengang`.`studiengang_id`) + WHERE `mvv_studiengang`.`institut_id` = :institut_id + AND `mvv_stg_stgteil`.`stgteil_id` = :stgteil_id + "); + $statement->execute([ + 'institut_id' => $config->MY_INSTITUTES_DEFAULT, + 'stgteil_id' => $config->MY_COURSES_SELECTED_STGTEIL + ]); + $exists = (bool) $statement->fetch(PDO::FETCH_COLUMN); + if (!$exists) { + $config->delete('MY_COURSES_SELECTED_STGTEIL'); + } } - - unset($filters[$key]); } // Datafield filters |
