Security update for Core, with self-updated composer
[yaffs-website] / vendor / drupal / console / src / Command / User / UserBase.php
1 <?php
2
3 namespace Drupal\Console\Command\User;
4
5 use Drupal\Core\Entity\EntityTypeManagerInterface;
6 use Drupal\Console\Core\Command\Command;
7
8 /**
9  * Class UserBase
10  *
11  * @package Drupal\Console\Command\User
12  */
13 class UserBase extends Command
14 {
15     /**
16      * @var EntityTypeManagerInterface
17      */
18     protected $entityTypeManager;
19
20
21     /**
22      * Base constructor.
23      *
24      * @param EntityTypeManagerInterface $entityTypeManager
25      */
26     public function __construct(
27         EntityTypeManagerInterface $entityTypeManager
28     ) {
29         $this->entityTypeManager = $entityTypeManager;
30         parent::__construct();
31     }
32
33     /**
34      * @param $user mixed
35      *
36      * @return mixed
37      */
38     public function getUserEntity($user)
39     {
40         if (is_numeric($user)) {
41             $userEntity = $this->entityTypeManager
42                 ->getStorage('user')
43                 ->load($user);
44         } else {
45             $userEntity = reset(
46                 $this->entityTypeManager
47                     ->getStorage('user')
48                     ->loadByProperties(['name' => $user])
49             );
50         }
51
52         return $userEntity;
53     }
54
55     /***
56      * @return array users from site
57      */
58     public function getUsers()
59     {
60         $userStorage =  $this->entityTypeManager->getStorage('user');
61         $users = $userStorage->loadMultiple();
62
63         $userList = [];
64         foreach ($users as $userId => $user) {
65             $userList[$userId] = $user->getUsername();
66         }
67
68         return $userList;
69     }
70
71     private function userQuestion($user)
72     {
73         if (!$user) {
74             $user = $this->getIo()->choiceNoList(
75                 $this->trans('commands.user.password.reset.questions.user'),
76                 $this->getUsers()
77             );
78         }
79
80         return $user;
81     }
82
83     public function getUserOption()
84     {
85         $input = $this->getIo()->getInput();
86
87         $user = $this->userQuestion($input->getOption('user'));
88         $input->setOption('user', $user);
89
90         return $user;
91     }
92
93     public function getUserArgument()
94     {
95         $input = $this->getIo()->getInput();
96
97         $user = $this->userQuestion($input->getArgument('user'));
98         $input->setArgument('user', $user);
99
100         return $user;
101     }
102 }