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 * @param string $loginName
* @return string|false * @return string|false
* @throws \Exception
*/ */
public function loginName2UserName($loginName) { public function loginName2UserName($loginName) {
$cacheKey = 'loginName2UserName-'.$loginName; $cacheKey = 'loginName2UserName-' . $loginName;
$username = $this->access->connection->getFromCache($cacheKey); $username = $this->access->connection->getFromCache($cacheKey);
if(!is_null($username)) {
if ($username !== null) {
return $username; return $username;
} }
try { try {
$ldapRecord = $this->getLDAPUserByLoginName($loginName); $ldapRecord = $this->getLDAPUserByLoginName($loginName);
$user = $this->access->userManager->get($ldapRecord['dn'][0]); $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 // 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); $this->access->connection->writeToCache($cacheKey, false);
return false; return false;
} }