Browse Source
invalidates user when plugin reported deletion success
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
pull/16101/head
Arthur Schiwon
6 years ago
No known key found for this signature in database
GPG Key ID: 7424F1874854DF23
2 changed files with
26 additions and
5 deletions
-
apps/user_ldap/lib/User_LDAP.php
-
apps/user_ldap/tests/User_LDAPTest.php
|
|
|
@ -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); |
|
|
|
|
|
|
|
@ -343,9 +343,27 @@ class User_LDAPTest extends TestCase { |
|
|
|
$this->pluginManager->expects($this->once()) |
|
|
|
->method('deleteUser') |
|
|
|
->with('uid') |
|
|
|
->willReturn('result'); |
|
|
|
->willReturn(true); |
|
|
|
|
|
|
|
$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($this->backend->deleteUser('uid'),'result'); |
|
|
|
$this->assertEquals(true, $this->backend->deleteUser('uid')); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
|