Browse Source

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

tags/v6.0.0alpha2
Arthur Schiwon 11 years ago
parent
commit
b066c0ff44
2 changed files with 18 additions and 4 deletions
  1. 9
    2
      apps/user_ldap/group_proxy.php
  2. 9
    2
      apps/user_ldap/user_proxy.php

+ 9
- 2
apps/user_ldap/group_proxy.php 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;
}

+ 9
- 2
apps/user_ldap/user_proxy.php 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;
}

Loading…
Cancel
Save