Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
InitializeAuthRoles.php
Go to the documentation of this file.
1 <?php
8 
15 
21 {
25  private $moduleDataSetup;
26 
30  private $authFactory;
31 
37  public function __construct(
38  ModuleDataSetupInterface $moduleDataSetup,
39  \Magento\Authorization\Setup\AuthorizationFactory $authorizationFactory
40  ) {
41  $this->moduleDataSetup = $moduleDataSetup;
42  $this->authFactory = $authorizationFactory;
43  }
44 
48  public function apply()
49  {
50  $roleCollection = $this->authFactory->createRoleCollection()
51  ->addFieldToFilter('parent_id', 0)
52  ->addFieldToFilter('tree_level', 1)
53  ->addFieldToFilter('role_type', RoleGroup::ROLE_TYPE)
54  ->addFieldToFilter('user_id', 0)
55  ->addFieldToFilter('user_type', UserContextInterface::USER_TYPE_ADMIN)
56  ->addFieldToFilter('role_name', 'Administrators');
57 
58  if ($roleCollection->count() == 0) {
59  $admGroupRole = $this->authFactory->createRole()->setData(
60  [
61  'parent_id' => 0,
62  'tree_level' => 1,
63  'sort_order' => 1,
64  'role_type' => RoleGroup::ROLE_TYPE,
65  'user_id' => 0,
67  'role_name' => 'Administrators',
68  ]
69  )->save();
70  } else {
72  foreach ($roleCollection as $item) {
73  $admGroupRole = $item;
74  break;
75  }
76  }
77 
78  $rulesCollection = $this->authFactory->createRulesCollection()
79  ->addFieldToFilter('role_id', $admGroupRole->getId())
80  ->addFieldToFilter('resource_id', 'all');
81 
82  if ($rulesCollection->count() == 0) {
83  $this->authFactory->createRules()->setData(
84  [
85  'role_id' => $admGroupRole->getId(),
86  'resource_id' => 'Magento_Backend::all',
87  'privileges' => null,
88  'permission' => 'allow',
89  ]
90  )->save();
91  } else {
93  foreach ($rulesCollection as $rule) {
94  $rule->setData('resource_id', 'Magento_Backend::all')->save();
95  }
96  }
97 
101  $tableName = $this->moduleDataSetup->getTable('authorization_rule');
102  if ($tableName) {
103  $this->moduleDataSetup->getConnection()->delete(
104  $tableName,
105  ['resource_id = ?' => 'admin/system/tools/compiler']
106  );
107  }
108  }
109 
113  public static function getDependencies()
114  {
115  return [];
116  }
117 
121  public static function getVersion()
122  {
123  return '2.0.0';
124  }
125 
129  public function getAliases()
130  {
131  return [];
132  }
133 }
$tableName
Definition: trigger.php:13
__construct(ModuleDataSetupInterface $moduleDataSetup, \Magento\Authorization\Setup\AuthorizationFactory $authorizationFactory)