![]() 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/vendor/magento/module-authorization/Test/Fixture/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Authorization\Test\Fixture; use Magento\Authorization\Model\Acl\Role\Group; use Magento\Authorization\Model\ResourceModel\Role as RoleResource; use Magento\Authorization\Model\RoleFactory; use Magento\Authorization\Model\RulesFactory; use Magento\Authorization\Model\UserContextInterface; use Magento\Framework\DataObject; use Magento\TestFramework\Fixture\Data\ProcessorInterface; use Magento\TestFramework\Fixture\RevertibleDataFixtureInterface; /** * Creating a new admin role */ class Role implements RevertibleDataFixtureInterface { private const DEFAULT_DATA = [ 'role_name' => 'Role Name %uniqid%', 'role_type' => Group::ROLE_TYPE, 'user_id' => 0, 'user_type' => UserContextInterface::USER_TYPE_ADMIN ]; private const DEFAULT_DATA_RULES = [ 'id' => null, 'role_id' => null, 'resources' => ['Magento_Backend::all'] ]; /** * @var RoleFactory */ private $roleFactory; /** * @var ProcessorInterface */ private $dataProcessor; /** * @var RoleResource */ private $roleResourceModel; /** * @var RulesFactory */ private $rulesFactory; /** * @param RoleFactory $roleFactory * @param RoleResource $roleResourceModel * @param RulesFactory $rulesFactory * @param ProcessorInterface $dataProcessor */ public function __construct( RoleFactory $roleFactory, RoleResource $roleResourceModel, RulesFactory $rulesFactory, ProcessorInterface $dataProcessor ) { $this->roleFactory = $roleFactory; $this->roleResourceModel = $roleResourceModel; $this->rulesFactory = $rulesFactory; $this->dataProcessor = $dataProcessor; } /** * @inheritdoc */ public function apply(array $data = []): ?DataObject { $role = $this->roleFactory->create(); $role->setData($this->prepareData(array_diff_key($data, self::DEFAULT_DATA_RULES))); $this->roleResourceModel->save($role); $rules = $this->rulesFactory->create(); $rules->setRoleId($role->getId() ?? null); $rules->setResources($data['resources'] ?? self::DEFAULT_DATA_RULES['resources']); $rules->saveRel(); return $role; } /** * @inheritdoc */ public function revert(DataObject $data): void { $role = $this->roleFactory->create(); $role->load($data->getId()); if ($role->getId() !== null) { $role->delete(); } } /** * Prepare admin role data * * @param array $data * @return array */ private function prepareData(array $data): array { $data = array_merge(self::DEFAULT_DATA, $data); return $this->dataProcessor->process($this, $data); } }