mirror of
https://github.com/nextcloud/server.git
synced 2026-05-28 04:32:30 -04:00
Check LDAP upon user deletion instead of refusing based on cached information
This should avoid having to wait for background job to run after deleting a user in LDAP before being able to delete it in Nextcloud. Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
This commit is contained in:
parent
3446d9c0b2
commit
f932766acf
1 changed files with 21 additions and 7 deletions
|
|
@ -390,13 +390,27 @@ class User_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn
|
|||
}
|
||||
}
|
||||
|
||||
$marked = $this->ocConfig->getUserValue($uid, 'user_ldap', 'isDeleted', 0);
|
||||
if ((int)$marked === 0) {
|
||||
$this->logger->notice(
|
||||
'User '.$uid . ' is not marked as deleted, not cleaning up.',
|
||||
['app' => 'user_ldap']
|
||||
);
|
||||
return false;
|
||||
$marked = (int)$this->ocConfig->getUserValue($uid, 'user_ldap', 'isDeleted', 0);
|
||||
if ($marked === 0) {
|
||||
try {
|
||||
$user = $this->access->userManager->get($uid);
|
||||
if (($user instanceof User) && !$this->userExistsOnLDAP($uid, true)) {
|
||||
$user->markUser();
|
||||
$marked = 1;
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
$this->logger->debug(
|
||||
$e->getMessage(),
|
||||
['app' => 'user_ldap', 'exception' => $e]
|
||||
);
|
||||
}
|
||||
if ($marked === 0) {
|
||||
$this->logger->notice(
|
||||
'User '.$uid . ' is not marked as deleted, not cleaning up.',
|
||||
['app' => 'user_ldap']
|
||||
);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
$this->logger->info('Cleaning up after user ' . $uid,
|
||||
['app' => 'user_ldap']);
|
||||
|
|
|
|||
Loading…
Reference in a new issue