Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AdminUsersFixture.php
Go to the documentation of this file.
1 <?php
7 namespace Magento\Setup\Fixtures;
8 
10 use Magento\Authorization\Model\RoleFactory;
11 use Magento\Authorization\Model\RulesFactory;
14 use Magento\User\Model\ResourceModel\User\CollectionFactory as UserCollectionFactory;
15 use Magento\User\Model\UserFactory;
16 
25 {
29  protected $priority = 5;
30 
34  private $userFactory;
35 
39  private $roleFactory;
40 
44  private $userCollectionFactory;
45 
49  private $rulesFactory;
50 
54  private $rootResource;
55 
64  public function __construct(
66  UserFactory $userFactory,
67  UserCollectionFactory $userCollectionFactory,
68  RoleFactory $roleFactory,
69  RulesFactory $rulesFactory,
70  RootResource $rootResource
71  ) {
72  parent::__construct($fixtureModel);
73  $this->userFactory = $userFactory;
74  $this->roleFactory = $roleFactory;
75  $this->userCollectionFactory = $userCollectionFactory;
76  $this->rulesFactory = $rulesFactory;
77  $this->rootResource = $rootResource;
78  }
79 
83  public function execute()
84  {
85  $adminUsersNumber = $this->fixtureModel->getValue('admin_users', 0);
86  $adminUsersStartIndex = $this->userCollectionFactory->create()->getSize();
87 
88  if ($adminUsersStartIndex >= $adminUsersNumber) {
89  return;
90  }
91 
92  $role = $this->createAdministratorRole();
93 
94  for ($i = $adminUsersStartIndex; $i <= $adminUsersNumber; $i++) {
95  $adminUser = $this->userFactory->create();
96  $adminUser->setRoleId($role->getId())
97  ->setEmail('admin' . $i . '@example.com')
98  ->setFirstName('Firstname')
99  ->setLastName('Lastname')
100  ->setUserName('admin' . $i)
101  ->setPassword('123123q')
102  ->setIsActive(1);
103  $adminUser->save();
104  }
105  }
106 
110  public function getActionTitle()
111  {
112  return 'Generating admin users';
113  }
114 
118  public function introduceParamLabels()
119  {
120  return [
121  'admin_users' => 'Admin Users'
122  ];
123  }
124 
130  private function createAdministratorRole()
131  {
132  $role = $this->roleFactory->create();
133  $role->setParentId(0)
134  ->setTreeLevel(1)
135  ->setSortOrder(1)
136  ->setRoleType(Group::ROLE_TYPE)
137  ->setUserId(0)
139  ->setRoleName('Example Administrator');
140  $role->save();
141 
143  $rule = $this->rulesFactory->create();
144  $rule->setRoleId($role->getId())
145  ->setResourceId($this->rootResource->getId())
146  ->setPrivilegies(null)
147  ->setPermission('allow');
148  $rule->save();
149 
150  return $role;
151  }
152 }
__construct(FixtureModel $fixtureModel, UserFactory $userFactory, UserCollectionFactory $userCollectionFactory, RoleFactory $roleFactory, RulesFactory $rulesFactory, RootResource $rootResource)
$i
Definition: gallery.phtml:31