/** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $io = new DrupalStyle($input, $output); $roles = $input->getOption('roles'); $limit = $input->getOption('limit'); $uids = $this->splitOption($input->getOption('uid')); $usernames = $this->splitOption($input->getOption('username')); $mails = $this->splitOption($input->getOption('mail')); $userStorage = $this->entityTypeManager->getStorage('user'); $systemRoles = $this->drupalApi->getRoles(); $query = $this->entityQuery->get('user'); $query->condition('uid', 0, '>'); $query->sort('uid'); // uid as option if (is_array($uids) && $uids) { $group = $query->andConditionGroup()->condition('uid', $uids, 'IN'); $query->condition($group); } // username as option if (is_array($usernames) && $usernames) { $group = $query->andConditionGroup()->condition('name', $usernames, 'IN'); $query->condition($group); } // mail as option if (is_array($mails) && $mails) { $group = $query->andConditionGroup()->condition('mail', $mails, 'IN'); $query->condition($group); } if ($roles) { $query->condition('roles', is_array($roles) ? $roles : [$roles], 'IN'); } if ($limit) { $query->range(0, $limit); } $results = $query->execute(); $users = $userStorage->loadMultiple($results); $tableHeader = [$this->trans('commands.user.debug.messages.user-id'), $this->trans('commands.user.debug.messages.username'), $this->trans('commands.user.debug.messages.roles'), $this->trans('commands.user.debug.messages.status')]; $tableRows = []; foreach ($users as $userId => $user) { $userRoles = []; foreach ($user->getRoles() as $userRole) { $userRoles[] = $systemRoles[$userRole]; } $status = $user->isActive() ? $this->trans('commands.common.status.enabled') : $this->trans('commands.common.status.disabled'); $tableRows[] = [$userId, $user->getUsername(), implode(', ', $userRoles), $status]; } $io->table($tableHeader, $tableRows); }
/** * {@inheritdoc} */ protected function interact(InputInterface $input, OutputInterface $output) { $io = new DrupalStyle($input, $output); $username = $input->getArgument('username'); while (!$username) { $username = $io->askEmpty($this->trans('commands.user.create.questions.username'), null); } $input->setArgument('username', $username); $password = $input->getArgument('password'); if (!$password) { $password = $io->askEmpty($this->trans('commands.user.create.questions.password'), null); } $input->setArgument('password', $password); $roles = $input->getOption('roles'); if (!$roles) { $systemRoles = $this->drupalApi->getRoles(false, false, false); $roles = $io->choice($this->trans('commands.user.create.questions.roles'), array_values($systemRoles), null, true); $roles = array_map(function ($role) use($systemRoles) { return array_search($role, $systemRoles); }, $roles); $input->setOption('roles', $roles); } $email = $input->getOption('email'); if (!$email) { $email = $io->askEmpty($this->trans('commands.user.create.questions.email'), null); } $input->setOption('email', $email); $status = $input->getOption('status'); if (!$status) { $status = $io->choice($this->trans('commands.user.create.questions.status'), [0, 1], 1); } $input->setOption('status', $status); }
/** * {@inheritdoc} */ protected function interact(InputInterface $input, OutputInterface $output) { $io = new DrupalStyle($input, $output); $userId = $input->getOption('user-id'); if (!$userId) { $userId = $io->askEmpty($this->trans('commands.user.delete.questions.user-id'), null); $input->setOption('user-id', $userId); } $roles = $input->getOption('roles'); if (!$userId && !$roles) { $systemRoles = $this->drupalApi->getRoles(false, false, false); $roles = $io->choice($this->trans('commands.user.delete.questions.roles'), array_values($systemRoles), null, true); $roles = array_map(function ($role) use($systemRoles) { return array_search($role, $systemRoles); }, $roles); $input->setOption('roles', $roles); } }
/** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $io = new DrupalStyle($input, $output); $operation = $input->getArgument('operation'); $user = $input->getArgument('user'); $role = $input->getArgument('role'); $systemRoles = $this->drupalApi->getRoles(); if (is_numeric($user)) { $userObject = user_load($user); } else { $userObject = user_load_by_name($user); } if (!is_object($userObject)) { if (!filter_var($user, FILTER_VALIDATE_EMAIL) === false) { $userObject = user_load_by_mail($user); } } if (!is_object($userObject)) { $io->error(sprintf($this->trans('commands.user.role.messages.no-user-found'), $user)); return 1; } if (!array_key_exists($role, $systemRoles)) { $io->error(sprintf($this->trans('commands.user.role.messages.no-role-found'), $role)); return 1; } if ("add" == $operation) { $userObject->addRole($role); $userObject->save(); $io->success(sprintf($this->trans('commands.user.role.messages.add-success'), $userObject->name->value . " (" . $userObject->mail->value . ") ", $role)); } if ("remove" == $operation) { $userObject->removeRole($role); $userObject->save(); $io->success(sprintf($this->trans('commands.user.role.messages.remove-success'), $userObject->name->value . " (" . $userObject->mail->value . ") ", $role)); } }
/** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $io = new DrupalStyle($input, $output); $roles = $input->getArgument('roles'); $limit = $input->getOption('limit') ?: 25; $password = $input->getOption('password'); $timeRange = $input->getOption('time-range') ?: 31536000; if (!$roles) { $roles = $this->drupalApi->getRoles(); } $users = $this->createUserData->create($roles, $limit, $password, $timeRange); $tableHeader = [$this->trans('commands.create.users.messages.user-id'), $this->trans('commands.create.users.messages.username'), $this->trans('commands.create.users.messages.roles'), $this->trans('commands.create.users.messages.created')]; if ($users['success']) { $io->table($tableHeader, $users['success']); $io->success(sprintf($this->trans('commands.create.users.messages.created-users'), $limit)); } return 0; }