From 6924a185b2bb498c43bf620066216440ffcff9a8 Mon Sep 17 00:00:00 2001
From: Peter Thienel <thienel@data-quest.de>
Date: Wed, 29 May 2024 15:35:25 +0000
Subject: [PATCH] =?UTF-8?q?Resolve=20"Externe=20Seiten:=20Die=20Sichbarkei?=
 =?UTF-8?q?t=20von=20Veranstaltungen=20wird=20an=20weiteren=20Stellen=20ni?=
 =?UTF-8?q?cht=20ber=C3=BCcksichtigt"?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Closes #4231

Merge request studip/studip!3063


(cherry picked from commit b506b133d371742ef23b3a22cc1c6bb20c860d40)

b59bf23b 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 270e99124cd..d55717376cd 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 49c754c16a1..37d7436b785 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 45c40c85a95..b301a47cdbd 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