From b59bf23b34963b18cb6f62fe494c2499f6bbbb42 Mon Sep 17 00:00:00 2001
From: Peter Thienel <thienel@data-quest.de>
Date: Wed, 29 May 2024 16:30:12 +0200
Subject: [PATCH] use and show only visible courses, fixes #4231

---
 lib/extern/ExternPagePersBrowse.php    | 3 ++-
 lib/extern/ExternPagePersonDetails.php | 3 ++-
 lib/extern/ExternPageTimetable.php     | 6 +++++-
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/lib/extern/ExternPagePersBrowse.php b/lib/extern/ExternPagePersBrowse.php
index ceb72d5ee0e..1eb5a04dc29 100644
--- a/lib/extern/ExternPagePersBrowse.php
+++ b/lib/extern/ExternPagePersBrowse.php
@@ -32,7 +32,7 @@ class ExternPagePersBrowse extends ExternPage
 
     /**
      * @see ExternPage::getDataFields()
-     
+
      * @param array $classes
      * @return array
      */
@@ -343,6 +343,7 @@ class ExternPagePersBrowse extends ExternPage
                         LEFT JOIN auth_user_md5 aum ON su.user_id = aum.user_id
                     WHERE ui.Institut_id = ?
                         AND su.status = 'dozent'
+                        AND s.visible = 1
                         AND ui.externdefault = 1
                         AND " . get_ext_vis_query() . "
                         AND ui.inst_perms = 'dozent'
diff --git a/lib/extern/ExternPagePersonDetails.php b/lib/extern/ExternPagePersonDetails.php
index 8fb65404404..a62d48216bb 100644
--- a/lib/extern/ExternPagePersonDetails.php
+++ b/lib/extern/ExternPagePersonDetails.php
@@ -146,7 +146,8 @@ class ExternPagePersonDetails extends ExternPage
                 LEFT JOIN `seminar_user` USING(`seminar_id`)
                 LEFT JOIN `sem_types`
                     ON `sem_types`.`id` = `seminare`.`status`
-            WHERE `semester_courses`.`semester_id` IN (:semester_ids) OR ISNULL(`semester_id`)
+            WHERE `seminare`.`visible` = 1
+                AND `semester_courses`.`semester_id` IN (:semester_ids) OR ISNULL(`semester_id`)
                 AND `seminar_user`.`user_id` = :user_id
                 AND `seminar_user`.`status` = 'dozent'
                 AND `sem_types`.`class` IN (:semclasses)";
diff --git a/lib/extern/ExternPageTimetable.php b/lib/extern/ExternPageTimetable.php
index 5d8dfd992ae..1e0e66af5a0 100644
--- a/lib/extern/ExternPageTimetable.php
+++ b/lib/extern/ExternPageTimetable.php
@@ -119,7 +119,11 @@ class ExternPageTimetable extends ExternPage
                 LEFT JOIN `seminar_inst`
                     ON `seminare`.`Seminar_id` = `seminar_inst`.`Seminar_id`";
         $query .= "
-            WHERE (`termine`.`date` >= :start AND `termine`.`date` <= :end) "
+            WHERE (
+                `seminare`.`visible` = 1
+                    AND termine`.`date` >= :start
+                    AND `termine`.`date` <= :end
+            )"
             . $this->getEventTypeSQL($params)
             . $this->getScopesSQL($params, $this->studyareas, (bool) $this->scope_kids)
             . $this->getInstitutesSQL($params)
-- 
GitLab