LDAP: reset user/group-config association only after exists-check, may performance in some cases

This commit is contained in:
Arthur Schiwon 2013-04-23 01:00:27 +02:00
parent edd37c779d
commit b066c0ff44
2 changed files with 18 additions and 4 deletions

View File

@ -76,8 +76,15 @@ class Group_Proxy extends lib\Proxy implements \OCP\GroupInterface {
if(isset($this->backends[$prefix])) {
$result = call_user_func_array(array($this->backends[$prefix], $method), $parameters);
if(!$result) {
//not found here, reset cache to null
$this->writeToCache($cacheKey, null);
//not found here, reset cache to null if group vanished
//because sometimes methods return false with a reason
$groupExists = call_user_func_array(
array($this->backends[$prefix], 'groupExists'),
array($gid)
);
if(!$groupExists) {
$this->writeToCache($cacheKey, null);
}
}
return $result;
}

View File

@ -76,8 +76,15 @@ class User_Proxy extends lib\Proxy implements \OCP\UserInterface {
if(isset($this->backends[$prefix])) {
$result = call_user_func_array(array($this->backends[$prefix], $method), $parameters);
if(!$result) {
//not found here, reset cache to null
$this->writeToCache($cacheKey, null);
//not found here, reset cache to null if user vanished
//because sometimes methods return false with a reason
$userExists = call_user_func_array(
array($this->backends[$prefix], 'userExists'),
array($uid)
);
if(!$userExists) {
$this->writeToCache($cacheKey, null);
}
}
return $result;
}