uid can be false when the user record does not exit

fixes not loading files app for users who got a share by the gone LDAP user

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
This commit is contained in:
Arthur Schiwon 2019-11-20 15:14:18 +01:00 committed by Roeland Jago Douma
parent 2b2626566c
commit 213016f758
No known key found for this signature in database
GPG Key ID: F941078878347C0C
1 changed files with 12 additions and 8 deletions

View File

@ -739,20 +739,24 @@ class Group_LDAP extends BackendUtility implements \OCP\GroupInterface, IGroupLD
if ($result === false) { if ($result === false) {
\OCP\Util::writeLog('user_ldap', 'No uid attribute found for DN ' . $userDN . ' on '. \OCP\Util::writeLog('user_ldap', 'No uid attribute found for DN ' . $userDN . ' on '.
$this->access->connection->ldapHost, ILogger::DEBUG); $this->access->connection->ldapHost, ILogger::DEBUG);
$uid = false;
} else {
$uid = $result[0];
} }
$uid = $result[0];
} else { } else {
// just in case // just in case
$uid = $userDN; $uid = $userDN;
} }
if(isset($this->cachedGroupsByMember[$uid])) { if($uid !== false) {
$groups = array_merge($groups, $this->cachedGroupsByMember[$uid]); if (isset($this->cachedGroupsByMember[$uid])) {
} else { $groups = array_merge($groups, $this->cachedGroupsByMember[$uid]);
$groupsByMember = array_values($this->getGroupsByMember($uid)); } else {
$groupsByMember = $this->access->nextcloudGroupNames($groupsByMember); $groupsByMember = array_values($this->getGroupsByMember($uid));
$this->cachedGroupsByMember[$uid] = $groupsByMember; $groupsByMember = $this->access->nextcloudGroupNames($groupsByMember);
$groups = array_merge($groups, $groupsByMember); $this->cachedGroupsByMember[$uid] = $groupsByMember;
$groups = array_merge($groups, $groupsByMember);
}
} }
if($primaryGroup !== false) { if($primaryGroup !== false) {