From 83358ee8215d40dec58c56d54a2a909fc23b9dc4 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.php | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/lib/classes/UserLookup.php b/lib/classes/UserLookup.php
index 62de8fd4eb8..063c3243a3e 100644
--- a/lib/classes/UserLookup.php
+++ b/lib/classes/UserLookup.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