From a75e32afff2450c77a101fef7c609a57df118d66 Mon Sep 17 00:00:00 2001
From: Jan-Hendrik Willms <tleilax+studip@gmail.com>
Date: Wed, 3 Jul 2024 07:14:47 +0000
Subject: [PATCH] fix userdomain lookup for selection 'no userdomain', fixes
 #4353

Closes #4353

Merge request studip/studip!3160
---
 lib/classes/UserLookup.class.php | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/lib/classes/UserLookup.class.php b/lib/classes/UserLookup.class.php
index ddf9276bc0a..f7c6beee64c 100644
--- a/lib/classes/UserLookup.class.php
+++ b/lib/classes/UserLookup.class.php
@@ -441,10 +441,26 @@ class UserLookup
             return [];
         }
 
-        $query = "SELECT `user_id`
+        $query = "SELECT DISTINCT `user_id`
                  FROM `user_userdomains`
                  WHERE `userdomain_id` IN (?)";
-        return DBManager::get()->fetchFirst($query, [$needles]);
+        $result = DBManager::get()->fetchFirst($query, [$needles]);
+
+        if (in_array('keine', $needles)) {
+            $query = "SELECT `user_id`
+                      FROM `auth_user_md5`
+                      WHERE `user_id` NOT IN (
+                          SELECT `user_id`
+                          FROM `user_userdomains`
+                      )";
+            $result = array_merge(
+                $result,
+                DBManager::get()->fetchFirst($query)
+            );
+            $result = array_unique($result);
+        }
+
+        return $result;
     }
 
     /**
-- 
GitLab