aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRasmus Fuhse <fuhse@data-quest.de>2024-05-02 09:49:31 +0000
committerRasmus Fuhse <fuhse@data-quest.de>2024-05-02 09:49:31 +0000
commita756b09921d5f21ed4e8d90ecd0f7eb879d591bd (patch)
treee339b2de963d5217499af81473ee6cb59a5787d7
parent27b722116b6e60d16a0fa4a9bd47ff2ac8487f08 (diff)
Resolve "Verwaltung von Veranstaltungen: Lehrendenfilter wird angewendet, obwohl das nicht angezeigt wird"
Closes #4053 Merge request studip/studip!2946
-rw-r--r--app/controllers/admin/courses.php34
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