Merge pull request #7796 from nextcloud/ldap-sync-fixes
LDAP Sync fixes: revert recursion resolution, fixed handling of pagingsize of 0
This commit is contained in:
commit
9898ec95c1
|
@ -52,6 +52,7 @@ use OCA\User_LDAP\Mapping\AbstractMapping;
|
|||
|
||||
use OC\ServerNotAvailableException;
|
||||
use OCP\IConfig;
|
||||
use OCP\Util;
|
||||
|
||||
/**
|
||||
* Class Access
|
||||
|
@ -1913,11 +1914,8 @@ class Access extends LDAPUtility implements IUserTools {
|
|||
// no cookie known from a potential previous search. We need
|
||||
// to start from 0 to come to the desired page. cookie value
|
||||
// of '0' is valid, because 389ds
|
||||
$reOffset = 0;
|
||||
while($reOffset < $offset) {
|
||||
$reOffset = ($offset - $limit) < 0 ? 0 : $offset - $limit;
|
||||
$this->search($filter, array($base), $attr, $limit, $reOffset, true);
|
||||
$reOffset += $limit;
|
||||
}
|
||||
$cookie = $this->getPagedResultCookie($base, $filter, $limit, $offset);
|
||||
//still no cookie? obviously, the server does not like us. Let's skip paging efforts.
|
||||
// '0' is valid, because 389ds
|
||||
|
@ -1937,9 +1935,8 @@ class Access extends LDAPUtility implements IUserTools {
|
|||
}
|
||||
\OCP\Util::writeLog('user_ldap', 'Ready for a paged search', \OCP\Util::DEBUG);
|
||||
} else {
|
||||
\OCP\Util::writeLog('user_ldap',
|
||||
'No paged search for us, Cpt., Limit '.$limit.' Offset '.$offset,
|
||||
\OCP\Util::INFO);
|
||||
$e = new \Exception('No paged search possible, Limit '.$limit.' Offset '.$offset);
|
||||
\OC::$server->getLogger()->logException($e, ['level' => Util::DEBUG]);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -176,10 +176,10 @@ class Sync extends TimedJob {
|
|||
true
|
||||
);
|
||||
|
||||
if($connection->ldapPagingSize === 0) {
|
||||
return true;
|
||||
if((int)$connection->ldapPagingSize === 0) {
|
||||
return false;
|
||||
}
|
||||
return count($results) >= $connection->ldapPagingSize;
|
||||
return count($results) >= (int)$connection->ldapPagingSize;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -158,7 +158,9 @@ class SyncTest extends TestCase {
|
|||
return [
|
||||
[ 3, 3, true ],
|
||||
[ 3, 5, true ],
|
||||
[ 3, 2, false]
|
||||
[ 3, 2, false],
|
||||
[ 0, 4, false],
|
||||
[ null, 4, false]
|
||||
];
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue