Skip to content

Commit b9dccf5

Browse files
authored
uid can be false when the user record does not exit (#18030)
uid can be false when the user record does not exit
2 parents 37ef64d + 213016f commit b9dccf5

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

apps/user_ldap/lib/Group_LDAP.php

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

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

758762
if($primaryGroup !== false) {

0 commit comments

Comments
 (0)