invalidates user when plugin reported deletion success

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
This commit is contained in:
Arthur Schiwon 2019-06-26 14:18:28 +02:00 committed by Backportbot
parent 449f23e8d5
commit 9f48090545
2 changed files with 26 additions and 5 deletions

View File

@ -382,18 +382,21 @@ class User_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn
*/
public function deleteUser($uid) {
if ($this->userPluginManager->canDeleteUser()) {
return $this->userPluginManager->deleteUser($uid);
$status = $this->userPluginManager->deleteUser($uid);
if($status === false) {
return false;
}
}
$marked = $this->ocConfig->getUserValue($uid, 'user_ldap', 'isDeleted', 0);
if((int)$marked === 0) {
\OC::$server->getLogger()->notice(
'User '.$uid . ' is not marked as deleted, not cleaning up.',
array('app' => 'user_ldap'));
['app' => 'user_ldap']);
return false;
}
\OC::$server->getLogger()->info('Cleaning up after user ' . $uid,
array('app' => 'user_ldap'));
['app' => 'user_ldap']);
$this->access->getUserMapper()->unmap($uid); // we don't emit unassign signals here, since it is implicit to delete signals fired from core
$this->access->userManager->invalidate($uid);

View File

@ -342,9 +342,27 @@ class User_LDAPTest extends TestCase {
$this->pluginManager->expects($this->once())
->method('deleteUser')
->with('uid')
->willReturn('result');
->willReturn(true);
$this->assertEquals($this->backend->deleteUser('uid'),'result');
$this->config->expects($this->once())
->method('getUserValue')
->with('uid', 'user_ldap', 'isDeleted', 0)
->willReturn(1);
$mapper = $this->createMock(UserMapping::class);
$mapper->expects($this->once())
->method('unmap')
->with('uid');
$this->access->expects($this->atLeastOnce())
->method('getUserMapper')
->willReturn($mapper);
$this->userManager->expects($this->once())
->method('invalidate')
->with('uid');
$this->assertEquals(true, $this->backend->deleteUser('uid'));
}
/**