diff --git a/apps/user_ldap/lib/Access.php b/apps/user_ldap/lib/Access.php index 805197f2a5fd8..85c6b5fa6aead 100644 --- a/apps/user_ldap/lib/Access.php +++ b/apps/user_ldap/lib/Access.php @@ -155,12 +155,14 @@ public function getConnection() { /** * reads a given attribute for an LDAP record identified by a DN + * * @param string $dn the record in question * @param string $attr the attribute that shall be retrieved * if empty, just check the record's existence * @param string $filter * @return array|false an array of values on success or an empty * array if $attr is empty, false otherwise + * @throws ServerNotAvailableException */ public function readAttribute($dn, $attr, $filter = 'objectClass=*') { if(!$this->checkConnection()) { diff --git a/apps/user_ldap/lib/User_LDAP.php b/apps/user_ldap/lib/User_LDAP.php index cfd2450a1227e..9bbe5b003b783 100644 --- a/apps/user_ldap/lib/User_LDAP.php +++ b/apps/user_ldap/lib/User_LDAP.php @@ -35,6 +35,7 @@ namespace OCA\User_LDAP; +use OC\ServerNotAvailableException; use OC\User\Backend; use OC\User\NoUserException; use OCA\User_LDAP\Exceptions\NotOnLDAP; @@ -268,16 +269,18 @@ public function userExistsOnLDAP($user) { try { $uuid = $this->access->getUserMapper()->getUUIDByDN($dn); - if(!$uuid) { + if (!$uuid) { return false; } $newDn = $this->access->getUserDnByUuid($uuid); //check if renamed user is still valid by reapplying the ldap filter - if(!is_array($this->access->readAttribute($newDn, '', $this->access->connection->ldapUserFilter))) { + if (!is_array($this->access->readAttribute($newDn, '', $this->access->connection->ldapUserFilter))) { return false; } $this->access->getUserMapper()->setDNbyUUID($newDn, $uuid); return true; + } catch (ServerNotAvailableException $e) { + throw $e; } catch (\Exception $e) { return false; }