![]() 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/Setup/Patch/Data/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Authorization\Setup\Patch\Data; use Magento\Framework\App\ResourceConnection; use Magento\Framework\Setup\ModuleDataSetupInterface; use Magento\Framework\Setup\Patch\DataPatchInterface; use Magento\Framework\Setup\Patch\PatchVersionInterface; use Magento\Authorization\Model\Acl\Role\Group as RoleGroup; use Magento\Authorization\Model\UserContextInterface; /** * Class InitializeAuthRoles * @package Magento\Authorization\Setup\Patch */ class InitializeAuthRoles implements DataPatchInterface, PatchVersionInterface { /** * @var ModuleDataSetupInterface */ private $moduleDataSetup; /** * @var \Magento\Authorization\Setup\AuthorizationFactory */ private $authFactory; /** * InitializeAuthRoles constructor. * @param ModuleDataSetupInterface $moduleDataSetup * @param \Magento\Authorization\Setup\AuthorizationFactory $authorizationFactory */ public function __construct( ModuleDataSetupInterface $moduleDataSetup, \Magento\Authorization\Setup\AuthorizationFactory $authorizationFactory ) { $this->moduleDataSetup = $moduleDataSetup; $this->authFactory = $authorizationFactory; } /** * {@inheritdoc} */ public function apply() { $roleCollection = $this->authFactory->createRoleCollection() ->addFieldToFilter('parent_id', 0) ->addFieldToFilter('tree_level', 1) ->addFieldToFilter('role_type', RoleGroup::ROLE_TYPE) ->addFieldToFilter('user_id', 0) ->addFieldToFilter('user_type', UserContextInterface::USER_TYPE_ADMIN) ->addFieldToFilter('role_name', 'Administrators'); if ($roleCollection->count() == 0) { $admGroupRole = $this->authFactory->createRole()->setData( [ 'parent_id' => 0, 'tree_level' => 1, 'sort_order' => 1, 'role_type' => RoleGroup::ROLE_TYPE, 'user_id' => 0, 'user_type' => UserContextInterface::USER_TYPE_ADMIN, 'role_name' => 'Administrators', ] )->save(); } else { /** @var \Magento\Authorization\Model\ResourceModel\Role $item */ foreach ($roleCollection as $item) { $admGroupRole = $item; break; } } $rulesCollection = $this->authFactory->createRulesCollection() ->addFieldToFilter('role_id', $admGroupRole->getId()) ->addFieldToFilter('resource_id', 'all'); if ($rulesCollection->count() == 0) { $this->authFactory->createRules()->setData( [ 'role_id' => $admGroupRole->getId(), 'resource_id' => 'Magento_Backend::all', 'privileges' => null, 'permission' => 'allow', ] )->save(); } else { /** @var \Magento\Authorization\Model\Rules $rule */ foreach ($rulesCollection as $rule) { $rule->setData('resource_id', 'Magento_Backend::all')->save(); } } /** * Delete rows by condition from authorization_rule */ $tableName = $this->moduleDataSetup->getTable('authorization_rule'); if ($tableName) { $this->moduleDataSetup->getConnection()->delete( $tableName, ['resource_id = ?' => 'admin/system/tools/compiler'] ); } } /** * {@inheritdoc} */ public static function getDependencies() { return []; } /** * {@inheritdoc} */ public static function getVersion() { return '2.0.0'; } /** * {@inheritdoc} */ public function getAliases() { return []; } }