Skip to content

Commit 5a92c46

Browse files
authored
Merge pull request #18049 from nextcloud/backport/18030/stable15
[stable15] uid can be false when the user record does not exit
2 parents 128359f + 5fda1c3 commit 5a92c46

1 file changed

Lines changed: 12 additions & 8 deletions

File tree

apps/user_ldap/lib/Group_LDAP.php

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -738,20 +738,24 @@ public function getUserGroups($uid) {
738738
if ($result === false) {
739739
\OCP\Util::writeLog('user_ldap', 'No uid attribute found for DN ' . $userDN . ' on '.
740740
$this->access->connection->ldapHost, ILogger::DEBUG);
741+
$uid = false;
742+
} else {
743+
$uid = $result[0];
741744
}
742-
$uid = $result[0];
743745
} else {
744746
// just in case
745747
$uid = $userDN;
746748
}
747749

748-
if(isset($this->cachedGroupsByMember[$uid])) {
749-
$groups = array_merge($groups, $this->cachedGroupsByMember[$uid]);
750-
} else {
751-
$groupsByMember = array_values($this->getGroupsByMember($uid));
752-
$groupsByMember = $this->access->nextcloudGroupNames($groupsByMember);
753-
$this->cachedGroupsByMember[$uid] = $groupsByMember;
754-
$groups = array_merge($groups, $groupsByMember);
750+
if($uid !== false) {
751+
if (isset($this->cachedGroupsByMember[$uid])) {
752+
$groups = array_merge($groups, $this->cachedGroupsByMember[$uid]);
753+
} else {
754+
$groupsByMember = array_values($this->getGroupsByMember($uid));
755+
$groupsByMember = $this->access->nextcloudGroupNames($groupsByMember);
756+
$this->cachedGroupsByMember[$uid] = $groupsByMember;
757+
$groups = array_merge($groups, $groupsByMember);
758+
}
755759
}
756760

757761
if($primaryGroup !== false) {

0 commit comments

Comments
 (0)