if define, check the userfilter if the user is still allowed

This commit is contained in:
Renaud Fortier 2015-08-11 11:55:38 -04:00
parent cd5342d0ff
commit 3c53a0da27
2 changed files with 6 additions and 2 deletions

View File

@ -175,7 +175,7 @@ class Access extends LDAPUtility implements user\IUserTools {
//in case an error occurs , e.g. object does not exist
return false;
}
if (empty($attr)) {
if (empty($attr) && ($filter === 'objectclass=*' || $this->ldap->countEntries($cr, $rr) === 1)) {
\OCP\Util::writeLog('user_ldap', 'readAttribute: '.$dn.' found', \OCP\Util::DEBUG);
return array();
}

View File

@ -176,8 +176,12 @@ class USER_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn
}
$dn = $user->getDN();
$userFilter = 'objectclass=*';
if ($this->access->connection->ldapUserFilter !== '') {
$userFilter = $this->access->connection->ldapUserFilter;
}
//check if user really still exists by reading its entry
if(!is_array($this->access->readAttribute($dn, ''))) {
if(!is_array($this->access->readAttribute($dn, '', $userFilter))) {
$lcr = $this->access->connection->getConnectionResource();
if(is_null($lcr)) {
throw new \Exception('No LDAP Connection to server ' . $this->access->connection->ldapHost);