From 853987cfd5d54cc1cc54eeec55045b391e20668d Mon Sep 17 00:00:00 2001
From: Thomas Hackl <hackl@data-quest.de>
Date: Tue, 1 Apr 2025 16:29:32 +0200
Subject: [PATCH] bugfix: correctly handle empty IGNORE_SUBJECT_IDS

---
 controllers/message.php | 2 +-
 models/GarudaModel.php  | 6 ++----
 plugin.manifest         | 2 +-
 3 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/controllers/message.php b/controllers/message.php
index 5f0f39d..936ad7d 100644
--- a/controllers/message.php
+++ b/controllers/message.php
@@ -767,7 +767,7 @@ class MessageController extends AuthenticatedController {
                 dgettext('garuda', 'Ihre Nachricht an %u Personen wurde gespeichert.'),
                 count($this->flash['users'])));
         } else {
-            PageLayout::postSuccess(sprintf(
+            PageLayout::postError(sprintf(
                 dgettext('garuda', 'Ihre Nachricht an %u Personen konnte nicht gespeichert werden.'),
                 count($this->flash['users'])));
         }
diff --git a/models/GarudaModel.php b/models/GarudaModel.php
index 77b64d8..06a7dac 100644
--- a/models/GarudaModel.php
+++ b/models/GarudaModel.php
@@ -256,7 +256,7 @@ class GarudaModel {
                         JOIN `auth_user_md5` a USING (`user_id`)
                     WHERE s.`fach_id` NOT IN (:ignored)
                         AND a.`visible` != 'never'",
-                ['ignored' => Config::get()->GARUDA_IGNORE_SUBJECT_IDS]
+                ['ignored' => Config::get()->GARUDA_IGNORE_SUBJECT_IDS ?: ['']]
             );
         } else {
             $query = "SELECT DISTINCT `user_id` FROM `user_studiengang`";
@@ -273,15 +273,13 @@ class GarudaModel {
                     $parameters[] = $entry['fach_id'];
                 }
                 $where .= " AND `fach_id` NOT IN (?)";
-                $parameters[] = Config::get()->GARUDA_IGNORE_SUBJECT_IDS;
+                $parameters[] = Config::get()->GARUDA_IGNORE_SUBJECT_IDS ?: [''];
                 $query .= $where;
                 return DBManager::get()->fetchFirst($query, $parameters);
             } else {
                 return [];
             }
-            return DBManager::get()->fetchFirst($query, $parameters);
         }
-        return array();
     }
 
     public static function getAllEmployees($userId, $config)
diff --git a/plugin.manifest b/plugin.manifest
index 4e25c7a..31e8175 100644
--- a/plugin.manifest
+++ b/plugin.manifest
@@ -1,7 +1,7 @@
 pluginname=Garuda
 pluginclassname=GarudaPlugin
 origin=intelec
-version=2.14
+version=2.14.1
 description=Allows mail sending to selectable target audiences.
 studipMinVersion=5.3
 studipMaxVersion=5.9.99
-- 
GitLab