6
6
7
7
namespace Magento \Setup \Fixtures ;
8
8
9
+ use Magento \Authorization \Model \Acl \Role \Group ;
10
+ use Magento \Authorization \Model \RoleFactory ;
11
+ use Magento \Authorization \Model \RulesFactory ;
12
+ use Magento \Authorization \Model \UserContextInterface ;
13
+ use Magento \Framework \Acl \RootResource ;
14
+ use Magento \User \Model \ResourceModel \User \CollectionFactory as UserCollectionFactory ;
15
+ use Magento \User \Model \UserFactory ;
16
+
9
17
/**
10
18
* Generate admin users
11
19
*
@@ -21,36 +29,52 @@ class AdminUsersFixture extends Fixture
21
29
protected $ priority = 5 ;
22
30
23
31
/**
24
- * @var \Magento\User\Model\ UserFactory
32
+ * @var UserFactory
25
33
*/
26
34
private $ userFactory ;
27
35
28
36
/**
29
- * @var \Magento\Authorization\Model\ RoleFactory
37
+ * @var RoleFactory
30
38
*/
31
39
private $ roleFactory ;
32
40
33
41
/**
34
- * @var \Magento\User\Model\ResourceModel\User\CollectionFactory
42
+ * @var UserCollectionFactory
35
43
*/
36
44
private $ userCollectionFactory ;
37
45
38
46
/**
39
- * @param \Magento\User\Model\UserFactory $userFactory
40
- * @param \Magento\User\Model\ResourceModel\User\CollectionFactory $userCollectionFactory
41
- * @param \Magento\Authorization\Model\RoleFactory $roleFactory
47
+ * @var RulesFactory
48
+ */
49
+ private $ rulesFactory ;
50
+
51
+ /**
52
+ * @var RootResource
53
+ */
54
+ private $ rootResource ;
55
+
56
+ /**
42
57
* @param FixtureModel $fixtureModel
58
+ * @param UserFactory $userFactory
59
+ * @param UserCollectionFactory $userCollectionFactory
60
+ * @param RoleFactory $roleFactory
61
+ * @param RulesFactory $rulesFactory
62
+ * @param RootResource $rootResource
43
63
*/
44
64
public function __construct (
45
- \Magento \User \Model \UserFactory $ userFactory ,
46
- \Magento \User \Model \ResourceModel \User \CollectionFactory $ userCollectionFactory ,
47
- \Magento \Authorization \Model \RoleFactory $ roleFactory ,
48
- FixtureModel $ fixtureModel
65
+ FixtureModel $ fixtureModel ,
66
+ UserFactory $ userFactory ,
67
+ UserCollectionFactory $ userCollectionFactory ,
68
+ RoleFactory $ roleFactory ,
69
+ RulesFactory $ rulesFactory ,
70
+ RootResource $ rootResource
49
71
) {
50
72
parent ::__construct ($ fixtureModel );
51
73
$ this ->userFactory = $ userFactory ;
52
74
$ this ->roleFactory = $ roleFactory ;
53
75
$ this ->userCollectionFactory = $ userCollectionFactory ;
76
+ $ this ->rulesFactory = $ rulesFactory ;
77
+ $ this ->rootResource = $ rootResource ;
54
78
}
55
79
56
80
/**
@@ -65,30 +89,18 @@ public function execute()
65
89
return ;
66
90
}
67
91
68
- $ defaultAdminUser = $ this ->userFactory ->create ()->loadByUsername ('admin ' );
69
- $ defaultAdminRole = $ this ->roleFactory ->create ()->load ($ defaultAdminUser ->getAclRole ());
92
+ $ role = $ this ->createAdministratorRole ();
70
93
71
94
for ($ i = $ adminUsersStartIndex ; $ i <= $ adminUsersNumber ; $ i ++) {
72
95
$ adminUser = $ this ->userFactory ->create ();
73
- $ adminUser
96
+ $ adminUser-> setRoleId ( $ role -> getId ())
74
97
->setEmail ('admin ' . $ i . '@example.com ' )
75
98
->setFirstName ('Firstname ' )
76
99
->setLastName ('Lastname ' )
77
100
->setUserName ('admin ' . $ i )
78
101
->setPassword ('123123q ' )
79
102
->setIsActive (1 );
80
103
$ adminUser ->save ();
81
-
82
- $ role = $ this ->roleFactory ->create ();
83
- $ role
84
- ->setUserId ($ adminUser ->getId ())
85
- ->setRoleName ('admin ' )
86
- ->setRoleType ($ defaultAdminRole ->getRoleType ())
87
- ->setUserType ($ defaultAdminRole ->getUserType ())
88
- ->setTreeLevel ($ defaultAdminRole ->getTreeLevel ())
89
- ->setSortOrder ($ defaultAdminRole ->getSortOrder ())
90
- ->setParentId (1 );
91
- $ role ->save ();
92
104
}
93
105
}
94
106
@@ -109,4 +121,32 @@ public function introduceParamLabels()
109
121
'admin_users ' => 'Admin Users '
110
122
];
111
123
}
124
+
125
+ /**
126
+ * Create administrator role with all privileges.
127
+ *
128
+ * @return \Magento\Authorization\Model\Role
129
+ */
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 )
138
+ ->setUserType (UserContextInterface::USER_TYPE_ADMIN )
139
+ ->setRoleName ('Example Administrator ' );
140
+ $ role ->save ();
141
+
142
+ /** @var \Magento\Authorization\Model\Rules $rule */
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
+ }
112
152
}
0 commit comments