From 0740fcd490f1d48443d0dd51a72c9b87c9c74ced Mon Sep 17 00:00:00 2001
From: Ron Lucke <lucke@elan-ev.de>
Date: Wed, 28 Sep 2022 10:12:49 +0000
Subject: [PATCH] Biest #1172

Merge request studip/studip!859
---
 .../globalsearch/GlobalSearchCourseware.php   | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/lib/classes/globalsearch/GlobalSearchCourseware.php b/lib/classes/globalsearch/GlobalSearchCourseware.php
index 18a2c17f460..6a0b22c1391 100644
--- a/lib/classes/globalsearch/GlobalSearchCourseware.php
+++ b/lib/classes/globalsearch/GlobalSearchCourseware.php
@@ -68,9 +68,23 @@ class GlobalSearchCourseware extends GlobalSearchModule implements GlobalSearchF
                 ORDER BY b . `mkdate` DESC
             ) LIMIT {$limit}";
         } else {
+            $user_id = DBManager::get()->quote($GLOBALS['user']->id);
+            $mycourses = "SELECT `Seminar_id`
+            FROM `seminar_user`
+            WHERE `user_id` = {$user_id}";
+
+            if (Config::get()->DEPUTIES_ENABLE) {
+            $mycourses .= "
+                UNION
+                SELECT `range_id` AS Seminar_id
+                FROM `deputies`
+                WHERE `user_id` = {$user_id}";
+            }
+
             $sql = "(SELECT `cw_structural_elements` . `id` AS id, CONCAT('', 'cw_structural_elements') AS type
             FROM `cw_structural_elements`
             WHERE (`title` LIKE {$query} OR `payload` LIKE {$query})
+                AND (`range_id` IN ({$mycourses}) OR `range_id` = {$user_id})
             ORDER BY `cw_structural_elements`.`mkdate` DESC)
             UNION (
                 SELECT se . `id` AS id, CONCAT('', 'cw_containers') AS type
@@ -79,6 +93,7 @@ class GlobalSearchCourseware extends GlobalSearchModule implements GlobalSearchF
                 ON se . `id` = c . `structural_element_id`
                 WHERE c. `payload` LIKE {$query}
                     AND `container_type` != 'list'
+                    AND (se . `range_id` IN ({$mycourses}) OR se .`range_id` = {$user_id})
                 ORDER BY c . `mkdate` DESC)
             UNION (
                 SELECT se . `id` AS id, CONCAT('', 'cw_blocks') AS type
@@ -88,6 +103,7 @@ class GlobalSearchCourseware extends GlobalSearchModule implements GlobalSearchF
                 JOIN cw_structural_elements se
                 ON se . `id` = c . `structural_element_id`
                 WHERE b.payload LIKE {$query}
+                    AND (se . `range_id` IN ({$mycourses}) OR se .`range_id` = {$user_id})
                 ORDER BY b . `mkdate` DESC
             ) LIMIT {$limit}";
         }
@@ -120,7 +136,8 @@ class GlobalSearchCourseware extends GlobalSearchModule implements GlobalSearchF
                 'img' => $structural_element->image ? $structural_element->getImageUrl() : Icon::create('courseware')->asImagePath(),
                 'additional' => '<a href="' . $pageData['originUrl'] . '" title="' . $pageData['originName'] . '">' . $pageData['originName'] . '</a>',
                 'date' => $date->format('d.m.Y H:i'),
-                'structural-element-id' => $structural_element->id
+                'structural-element-id' => $structural_element->id,
+                'expand' => null
             ];
         }
         return [];
-- 
GitLab