remove user from cache if he was deleted successfully

remotes/origin/stable6
Bjoern Schiessle 12 years ago
parent b0b76fe064
commit f021dad204
  1. 25
      lib/private/user.php
  2. 14
      lib/private/user/manager.php

@ -187,18 +187,25 @@ class OC_User {
public static function deleteUser($uid) { public static function deleteUser($uid) {
$user = self::getManager()->get($uid); $user = self::getManager()->get($uid);
if ($user) { if ($user) {
$user->delete(); $result = $user->delete();
// We have to delete the user from all groups // if delete was successful we clean-up the rest
foreach (OC_Group::getUserGroups($uid) as $i) { if ($result) {
OC_Group::removeFromGroup($uid, $i);
// We have to delete the user from all groups
foreach (OC_Group::getUserGroups($uid) as $i) {
OC_Group::removeFromGroup($uid, $i);
}
// Delete the user's keys in preferences
OC_Preferences::deleteUser($uid);
// Delete user files in /data/
OC_Helper::rmdirr(OC_Config::getValue('datadirectory', OC::$SERVERROOT . '/data') . '/' . $uid . '/');
// Remove it from the Cache
self::getManager()->delete($uid);
} }
// Delete the user's keys in preferences
OC_Preferences::deleteUser($uid);
// Delete user files in /data/
OC_Helper::rmdirr(OC_Config::getValue('datadirectory', OC::$SERVERROOT . '/data') . '/' . $uid . '/');
return true; return true;
} else { } else {
return false; return false;

@ -118,6 +118,20 @@ class Manager extends PublicEmitter {
return ($user !== null); return ($user !== null);
} }
/**
* remove deleted user from cache
*
* @param string $uid
* @return bool
*/
public function delete($uid) {
if (isset($this->cachedUsers[$uid])) {
unset($this->cachedUsers[$uid]);
return true;
}
return false;
}
/** /**
* Check if the password is valid for the user * Check if the password is valid for the user
* *

Loading…
Cancel
Save