Issue #3324729 by Jaypan, andypost, Chandreshgiri Gauswami, elber, longwave, quietone: User::addRole() and ::removeRole() should be chainable
parent
c6c37c2855
commit
9bd484126d
|
@ -195,6 +195,8 @@ class User extends ContentEntityBase implements UserInterface {
|
|||
$roles = $this->getRoles(TRUE);
|
||||
$roles[] = $rid;
|
||||
$this->set('roles', array_unique($roles));
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -202,6 +204,8 @@ class User extends ContentEntityBase implements UserInterface {
|
|||
*/
|
||||
public function removeRole($rid) {
|
||||
$this->set('roles', array_diff($this->getRoles(TRUE), [$rid]));
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -69,6 +69,8 @@ interface UserInterface extends ContentEntityInterface, EntityChangedInterface,
|
|||
*
|
||||
* @param string $rid
|
||||
* The role ID to add.
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function addRole($rid);
|
||||
|
||||
|
@ -77,6 +79,8 @@ interface UserInterface extends ContentEntityInterface, EntityChangedInterface,
|
|||
*
|
||||
* @param string $rid
|
||||
* The role ID to remove.
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function removeRole($rid);
|
||||
|
||||
|
|
|
@ -52,7 +52,8 @@ class UserEntityTest extends KernelTestBase {
|
|||
$this->assertFalse($user->hasRole('test_role_two'));
|
||||
$this->assertEquals([RoleInterface::AUTHENTICATED_ID, 'test_role_one'], $user->getRoles());
|
||||
|
||||
$user->addRole('test_role_one');
|
||||
$account = $user->addRole('test_role_one');
|
||||
$this->assertSame($user, $account);
|
||||
$this->assertTrue($user->hasRole('test_role_one'));
|
||||
$this->assertFalse($user->hasRole('test_role_two'));
|
||||
$this->assertEquals([RoleInterface::AUTHENTICATED_ID, 'test_role_one'], $user->getRoles());
|
||||
|
@ -62,7 +63,8 @@ class UserEntityTest extends KernelTestBase {
|
|||
$this->assertTrue($user->hasRole('test_role_two'));
|
||||
$this->assertEquals([RoleInterface::AUTHENTICATED_ID, 'test_role_one', 'test_role_two'], $user->getRoles());
|
||||
|
||||
$user->removeRole('test_role_three');
|
||||
$account = $user->removeRole('test_role_three');
|
||||
$this->assertSame($user, $account);
|
||||
$this->assertTrue($user->hasRole('test_role_one'));
|
||||
$this->assertTrue($user->hasRole('test_role_two'));
|
||||
$this->assertEquals([RoleInterface::AUTHENTICATED_ID, 'test_role_one', 'test_role_two'], $user->getRoles());
|
||||
|
|
Loading…
Reference in New Issue