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 Symfony\Component\Console\Command\Command;
14 use Drupal\Console\Core\Command\Shared\CommandTrait;
15 use Drupal\Console\Utils\DrupalApi;
16 use Drupal\Console\Core\Style\DrupalStyle;
21 * @package Drupal\Console\Command\User
23 class RoleCommand extends Command
33 * RoleCommand constructor.
35 * @param DrupalApi $drupalApi
37 public function __construct(DrupalApi $drupalApi)
39 $this->drupalApi = $drupalApi;
40 parent::__construct();
46 protected function configure()
49 ->setName('user:role')
50 ->setDescription($this->trans('commands.user.role.description'))
53 InputOption::VALUE_REQUIRED,
54 $this->trans('commands.user.role.operation')
58 InputOption::VALUE_REQUIRED,
59 $this->trans('commands.user.role.user')
63 InputOption::VALUE_REQUIRED,
64 $this->trans('commands.user.role.role')
71 protected function interact(InputInterface $input, OutputInterface $output)
73 $operation = $input->getArgument('operation');
74 $user = $input->getArgument('user');
75 $role = $input->getArgument('role');
77 if (!$operation || !$user || !$role) {
79 $this->trans('commands.user.role.messages.bad-arguments')
87 protected function execute(InputInterface $input, OutputInterface $output)
89 $io = new DrupalStyle($input, $output);
90 $operation = $input->getArgument('operation');
91 $user = $input->getArgument('user');
92 $role = $input->getArgument('role');
94 $systemRoles = $this->drupalApi->getRoles();
96 if (is_numeric($user)) {
97 $userObject = user_load($user);
99 $userObject = user_load_by_name($user);
103 if (!is_object($userObject)) {
104 if (!filter_var($user, FILTER_VALIDATE_EMAIL) === false) {
105 $userObject = user_load_by_mail($user);
109 if (!is_object($userObject)) {
110 $io->error(sprintf($this->trans('commands.user.role.messages.no-user-found'), $user));
114 if (!array_key_exists($role, $systemRoles)) {
115 $io->error(sprintf($this->trans('commands.user.role.messages.no-role-found'), $role));
119 if ("add" == $operation) {
120 $userObject->addRole($role);
124 $this->trans('commands.user.role.messages.add-success'),
125 $userObject->name->value . " (" . $userObject->mail->value . ") ",
131 if ("remove" == $operation) {
132 $userObject->removeRole($role);
137 $this->trans('commands.user.role.messages.remove-success'),
138 $userObject->name->value . " (" . $userObject->mail->value . ") ",