Neos\Neos\Domain\Service\UserService::addRoleToUser PHP Method

addRoleToUser() public method

Adds the specified role to all accounts of the given user and potentially carries out further actions which are needed to properly reflect these changes.
public addRoleToUser ( User $user, string $roleIdentifier ) : integer
$user Neos\Neos\Domain\Model\User The user to add roles to
$roleIdentifier string A fully qualified role identifier, or a role identifier relative to the Neos.Neos namespace
return integer How often this role has been added to accounts owned by the user
    public function addRoleToUser(User $user, $roleIdentifier)
    {
        $counter = 0;
        foreach ($user->getAccounts() as $account) {
            $counter += $this->addRoleToAccount($account, $roleIdentifier);
        }
        return $counter;
    }

Usage Example

 /**
  * Add a role to a user
  *
  * This command allows for adding a specific role to an existing user.
  *
  * Roles can optionally be specified as a comma separated list. For all roles provided by Neos, the role
  * namespace "Neos.Neos:" can be omitted.
  *
  * If an authentication provider was specified, the user will be determined by an account identified by "username"
  * related to the given provider. However, once a user has been found, the new role will be added to <b>all</b>
  * existing accounts related to that user, regardless of its authentication provider.
  *
  * @param string $username The username of the user
  * @param string $role Role to be added to the user, for example "Neos.Neos:Administrator" or just "Administrator"
  * @param string $authenticationProvider Name of the authentication provider to use. Example: "Typo3BackendProvider"
  * @return void
  */
 public function addRoleCommand($username, $role, $authenticationProvider = null)
 {
     $user = $this->getUserOrFail($username, $authenticationProvider);
     try {
         if ($this->userService->addRoleToUser($user, $role) > 0) {
             $this->outputLine('Added role "%s" to accounts of user "%s".', array($role, $username));
         } else {
             $this->outputLine('User "%s" already had the role "%s" assigned.', array($username, $role));
         }
     } catch (NoSuchRoleException $exception) {
         $this->outputLine('The role "%s" does not exist.', array($role));
         $this->quit(2);
     }
 }