Check if user is null before getUsername

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
This commit is contained in:
Daniel Kesselberg 2018-09-16 19:33:03 +02:00
parent 40bb45225a
commit 2d30511fa6
No known key found for this signature in database
GPG key ID: 36E3664E099D0614

View file

@ -119,24 +119,26 @@ class User_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn
}
/**
* returns the username for the given login name, if available
* Return the username for the given login name, if available
*
* @param string $loginName
* @return string|false
* @throws \Exception
*/
public function loginName2UserName($loginName) {
$cacheKey = 'loginName2UserName-'.$loginName;
$cacheKey = 'loginName2UserName-' . $loginName;
$username = $this->access->connection->getFromCache($cacheKey);
if(!is_null($username)) {
if ($username !== null) {
return $username;
}
try {
$ldapRecord = $this->getLDAPUserByLoginName($loginName);
$user = $this->access->userManager->get($ldapRecord['dn'][0]);
if($user instanceof OfflineUser) {
if ($user === null || $user instanceof OfflineUser) {
// this path is not really possible, however get() is documented
// to return User or OfflineUser so we are very defensive here.
// to return User, OfflineUser or null so we are very defensive here.
$this->access->connection->writeToCache($cacheKey, false);
return false;
}