![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/setup/src/Magento/Setup/Fixtures/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Setup\Fixtures; use Magento\Authorization\Model\Acl\Role\Group; use Magento\Authorization\Model\RoleFactory; use Magento\Authorization\Model\RulesFactory; use Magento\Authorization\Model\UserContextInterface; use Magento\Framework\Acl\RootResource; use Magento\User\Model\ResourceModel\User\CollectionFactory as UserCollectionFactory; use Magento\User\Model\UserFactory; /** * Generate admin users * * Support the following format: * <!-- Number of admin users --> * <admin_users>{int}</admin_users> */ class AdminUsersFixture extends Fixture { /** * @var int */ protected $priority = 5; /** * @var UserFactory */ private $userFactory; /** * @var RoleFactory */ private $roleFactory; /** * @var UserCollectionFactory */ private $userCollectionFactory; /** * @var RulesFactory */ private $rulesFactory; /** * @var RootResource */ private $rootResource; /** * @param FixtureModel $fixtureModel * @param UserFactory $userFactory * @param UserCollectionFactory $userCollectionFactory * @param RoleFactory $roleFactory * @param RulesFactory $rulesFactory * @param RootResource $rootResource */ public function __construct( FixtureModel $fixtureModel, UserFactory $userFactory, UserCollectionFactory $userCollectionFactory, RoleFactory $roleFactory, RulesFactory $rulesFactory, RootResource $rootResource ) { parent::__construct($fixtureModel); $this->userFactory = $userFactory; $this->roleFactory = $roleFactory; $this->userCollectionFactory = $userCollectionFactory; $this->rulesFactory = $rulesFactory; $this->rootResource = $rootResource; } /** * {@inheritdoc} */ public function execute() { $adminUsersNumber = $this->fixtureModel->getValue('admin_users', 0); $adminUsersStartIndex = $this->userCollectionFactory->create()->getSize(); if ($adminUsersStartIndex >= $adminUsersNumber) { return; } $role = $this->createAdministratorRole(); for ($i = $adminUsersStartIndex; $i <= $adminUsersNumber; $i++) { $adminUser = $this->userFactory->create(); $adminUser->setRoleId($role->getId()) ->setEmail('admin' . $i . '@example.com') ->setFirstName('Firstname') ->setLastName('Lastname') ->setUserName('admin' . $i) ->setPassword('123123q') ->setIsActive(1); $adminUser->save(); } } /** * {@inheritdoc} */ public function getActionTitle() { return 'Generating admin users'; } /** * {@inheritdoc} */ public function introduceParamLabels() { return [ 'admin_users' => 'Admin Users' ]; } /** * Create administrator role with all privileges. * * @return \Magento\Authorization\Model\Role */ private function createAdministratorRole() { $role = $this->roleFactory->create(); $role->setParentId(0) ->setTreeLevel(1) ->setSortOrder(1) ->setRoleType(Group::ROLE_TYPE) ->setUserId(0) ->setUserType(UserContextInterface::USER_TYPE_ADMIN) ->setRoleName('Example Administrator'); $role->save(); /** @var \Magento\Authorization\Model\Rules $rule */ $rule = $this->rulesFactory->create(); $rule->setRoleId($role->getId()) ->setResourceId($this->rootResource->getId()) ->setPrivilegies(null) ->setPermission('allow'); $rule->save(); return $role; } }