5 * Contains \Drupal\Console\Command\User\RoleCommand.
8 namespace Drupal\Console\Command\User;
10 use Symfony\Component\Console\Input\InputOption;
11 use Symfony\Component\Console\Input\InputInterface;
12 use Symfony\Component\Console\Output\OutputInterface;
13 use Drupal\Console\Core\Command\Command;
14 use Drupal\Console\Utils\DrupalApi;
19 * @package Drupal\Console\Command\User
21 class RoleCommand extends Command
29 * RoleCommand constructor.
31 * @param DrupalApi $drupalApi
33 public function __construct(DrupalApi $drupalApi)
35 $this->drupalApi = $drupalApi;
36 parent::__construct();
42 protected function configure()
45 ->setName('user:role')
46 ->setDescription($this->trans('commands.user.role.description'))
49 InputOption::VALUE_REQUIRED,
50 $this->trans('commands.user.role.arguments.operation')
54 InputOption::VALUE_REQUIRED,
55 $this->trans('commands.user.role.arguments.user')
59 InputOption::VALUE_REQUIRED,
60 $this->trans('commands.user.role.arguments.roles')
61 )->setAliases(['ur']);
67 protected function execute(InputInterface $input, OutputInterface $output)
69 $operation = $input->getArgument('operation');
70 $user = $input->getArgument('user');
71 $role = $input->getArgument('role');
73 if (!$operation || !$user || !$role) {
75 $this->trans('commands.user.role.messages.bad-arguments')
79 $systemRoles = $this->drupalApi->getRoles();
81 if (is_numeric($user)) {
82 $userObject = user_load($user);
84 $userObject = user_load_by_name($user);
88 if (!is_object($userObject)) {
89 if (!filter_var($user, FILTER_VALIDATE_EMAIL) === false) {
90 $userObject = user_load_by_mail($user);
94 if (!is_object($userObject)) {
95 $this->getIo()->error(sprintf($this->trans('commands.user.role.messages.no-user-found'), $user));
99 if (!array_key_exists($role, $systemRoles)) {
100 $this->getIo()->error(sprintf($this->trans('commands.user.role.messages.no-role-found'), $role));
104 if ("add" == $operation) {
105 $userObject->addRole($role);
107 $this->getIo()->success(
109 $this->trans('commands.user.role.messages.add-success'),
110 $userObject->name->value . " (" . $userObject->mail->value . ") ",
116 if ("remove" == $operation) {
117 $userObject->removeRole($role);
120 $this->getIo()->success(
122 $this->trans('commands.user.role.messages.remove-success'),
123 $userObject->name->value . " (" . $userObject->mail->value . ") ",