From c52c84e2bf436f44545eaefaee5228fcdf09b09d Mon Sep 17 00:00:00 2001
From: Elmar Ludwig <elmar.ludwig@uni-osnabrueck.de>
Date: Fri, 8 Sep 2023 14:45:05 +0000
Subject: [PATCH] only show restricted modules to logged in users, fixes #1049

Closes #1049

Merge request studip/studip!2141
---
 lib/modules/CoreParticipants.class.php | 8 ++++++++
 lib/modules/GradebookModule.class.php  | 4 ++++
 lib/modules/LtiToolModule.class.php    | 4 ++++
 3 files changed, 16 insertions(+)

diff --git a/lib/modules/CoreParticipants.class.php b/lib/modules/CoreParticipants.class.php
index a9fac5c2a42..ef1fd097254 100644
--- a/lib/modules/CoreParticipants.class.php
+++ b/lib/modules/CoreParticipants.class.php
@@ -16,6 +16,10 @@ class CoreParticipants extends CorePlugin implements StudipModule
      */
     public function getIconNavigation($course_id, $last_visit, $user_id)
     {
+        if ($user_id === 'nobody') {
+            return null;
+        }
+
         $auto_insert_perm = Config::get()->AUTO_INSERT_SEM_PARTICIPANTS_VIEW_PERM;
         // show the participants-icon only if the course is not an auto-insert-sem
         if (
@@ -122,6 +126,10 @@ class CoreParticipants extends CorePlugin implements StudipModule
      */
     public function getTabNavigation($course_id)
     {
+        if ($GLOBALS['user']->id === 'nobody') {
+            return [];
+        }
+
         $navigation = new Navigation(_('Teilnehmende'));
         $navigation->setImage(Icon::create('persons', Icon::ROLE_INFO_ALT));
         $navigation->setActiveImage(Icon::create('persons', Icon::ROLE_INFO));
diff --git a/lib/modules/GradebookModule.class.php b/lib/modules/GradebookModule.class.php
index ac8d69b2a4a..531c0cdf95c 100644
--- a/lib/modules/GradebookModule.class.php
+++ b/lib/modules/GradebookModule.class.php
@@ -45,6 +45,10 @@ class GradebookModule extends CorePlugin implements SystemPlugin, StudipModule
      */
     public function getIconNavigation($courseId, $lastVisit, $userId)
     {
+        if ($userId === 'nobody') {
+            return null;
+        }
+
         $title = _('Gradebook');
         if ($GLOBALS['perm']->have_studip_perm('tutor', $courseId, $userId)) {
             $changed = Instance::countBySQL(
diff --git a/lib/modules/LtiToolModule.class.php b/lib/modules/LtiToolModule.class.php
index 0383f115f64..a36ea1500de 100644
--- a/lib/modules/LtiToolModule.class.php
+++ b/lib/modules/LtiToolModule.class.php
@@ -37,6 +37,10 @@ class LtiToolModule extends CorePlugin implements StudipModule, SystemPlugin, Pr
      */
     public function getIconNavigation($course_id, $last_visit, $user_id)
     {
+        if ($user_id === 'nobody') {
+            return null;
+        }
+
         $title = CourseConfig::get($course_id)->LTI_TOOL_TITLE;
         $changed = LtiData::countBySQL('course_id = ? AND chdate > ?', [$course_id, $last_visit]);
 
-- 
GitLab