diff --git a/apps/user_ldap/lib/Access.php b/apps/user_ldap/lib/Access.php index 06ccbd23ac63d..c16e9bf9f15dc 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()) { @@ -242,6 +244,7 @@ public function readAttribute($dn, $attr, $filter = 'objectClass=*') { * @return array|bool false if there was any error, true if an exists check * was performed and the requested DN found, array with the * returned data on a successful usual operation + * @throws ServerNotAvailableException */ public function executeRead($cr, $dn, $attribute, $filter, $maxResults) { $this->initPagedSearch($filter, array($dn), array($attribute), $maxResults, 0); diff --git a/apps/user_ldap/lib/User_LDAP.php b/apps/user_ldap/lib/User_LDAP.php index dcfc5cc13b929..356c24ec3bf35 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; @@ -302,16 +303,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; }