/**
* Remove a role from a user
*
* This command allows for removal of a specific role from an existing user.
*
* 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 role will be removed from <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 removed from 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 removeRoleCommand($username, $role, $authenticationProvider = null)
{
$user = $this->getUserOrFail($username, $authenticationProvider);
try {
if ($this->userService->removeRoleFromUser($user, $role) > 0) {
$this->outputLine('Removed role "%s" from user "%s".', array($role, $username));
} else {
$this->outputLine('User "%s" did not have the role "%s" assigned.', array($username, $role));
}
} catch (NoSuchRoleException $exception) {
$this->outputLine('The role "%s" does not exist.', array($role));
$this->quit(2);
}
}