Do not try to make user subadmin of group twice
If the provisioning api is used to make a user subadmin of a group that user is already a subadmin just return success. Added unit test to ensure things keep working.
This commit is contained in:
parent
0a72e66e9f
commit
b21dc35355
|
@ -292,6 +292,10 @@ class Users {
|
||||||
if(strtolower($group) == 'admin') {
|
if(strtolower($group) == 'admin') {
|
||||||
return new OC_OCS_Result(null, 103, 'Cannot create subadmins for admin group');
|
return new OC_OCS_Result(null, 103, 'Cannot create subadmins for admin group');
|
||||||
}
|
}
|
||||||
|
// We cannot be subadmin twice
|
||||||
|
if (OC_Subadmin::isSubAdminOfGroup($user, $group)) {
|
||||||
|
return new OC_OCS_Result(null, 100);
|
||||||
|
}
|
||||||
// Go
|
// Go
|
||||||
if(OC_Subadmin::createSubAdmin($user, $group)) {
|
if(OC_Subadmin::createSubAdmin($user, $group)) {
|
||||||
return new OC_OCS_Result(null, 100);
|
return new OC_OCS_Result(null, 100);
|
||||||
|
|
|
@ -766,4 +766,29 @@ class UsersTest extends TestCase {
|
||||||
$this->assertFalse($result->succeeded());
|
$this->assertFalse($result->succeeded());
|
||||||
$this->assertEquals(101, $result->getStatusCode());
|
$this->assertEquals(101, $result->getStatusCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testSubAdminOfGroupAlreadySubAdmin() {
|
||||||
|
$user1 = $this->generateUsers();
|
||||||
|
$user2 = $this->generateUsers();
|
||||||
|
\OC_User::setUserId($user1);
|
||||||
|
\OC_Group::addToGroup($user1, 'admin');
|
||||||
|
$group1 = $this->getUniqueID();
|
||||||
|
\OC_Group::createGroup($group1);
|
||||||
|
|
||||||
|
//Make user2 subadmin of group1
|
||||||
|
$_POST['groupid'] = $group1;
|
||||||
|
$result = \OCA\provisioning_api\Users::addSubAdmin([
|
||||||
|
'userid' => $user2,
|
||||||
|
]);
|
||||||
|
$this->assertInstanceOf('OC_OCS_Result', $result);
|
||||||
|
$this->assertTrue($result->succeeded());
|
||||||
|
|
||||||
|
//Make user2 subadmin of group1 again
|
||||||
|
$_POST['groupid'] = $group1;
|
||||||
|
$result = \OCA\provisioning_api\Users::addSubAdmin([
|
||||||
|
'userid' => $user2,
|
||||||
|
]);
|
||||||
|
$this->assertInstanceOf('OC_OCS_Result', $result);
|
||||||
|
$this->assertTrue($result->succeeded());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue