66
77namespace Magento \Setup \Fixtures ;
88
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+
917/**
1018 * Generate admin users
1119 *
@@ -21,36 +29,52 @@ class AdminUsersFixture extends Fixture
2129 protected $ priority = 5 ;
2230
2331 /**
24- * @var \Magento\User\Model\ UserFactory
32+ * @var UserFactory
2533 */
2634 private $ userFactory ;
2735
2836 /**
29- * @var \Magento\Authorization\Model\ RoleFactory
37+ * @var RoleFactory
3038 */
3139 private $ roleFactory ;
3240
3341 /**
34- * @var \Magento\User\Model\ResourceModel\User\CollectionFactory
42+ * @var UserCollectionFactory
3543 */
3644 private $ userCollectionFactory ;
3745
3846 /**
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+ /**
4257 * @param FixtureModel $fixtureModel
58+ * @param UserFactory $userFactory
59+ * @param UserCollectionFactory $userCollectionFactory
60+ * @param RoleFactory $roleFactory
61+ * @param RulesFactory $rulesFactory
62+ * @param RootResource $rootResource
4363 */
4464 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
4971 ) {
5072 parent ::__construct ($ fixtureModel );
5173 $ this ->userFactory = $ userFactory ;
5274 $ this ->roleFactory = $ roleFactory ;
5375 $ this ->userCollectionFactory = $ userCollectionFactory ;
76+ $ this ->rulesFactory = $ rulesFactory ;
77+ $ this ->rootResource = $ rootResource ;
5478 }
5579
5680 /**
@@ -65,30 +89,18 @@ public function execute()
6589 return ;
6690 }
6791
68- $ defaultAdminUser = $ this ->userFactory ->create ()->loadByUsername ('admin ' );
69- $ defaultAdminRole = $ this ->roleFactory ->create ()->load ($ defaultAdminUser ->getAclRole ());
92+ $ role = $ this ->createAdministratorRole ();
7093
7194 for ($ i = $ adminUsersStartIndex ; $ i <= $ adminUsersNumber ; $ i ++) {
7295 $ adminUser = $ this ->userFactory ->create ();
73- $ adminUser
96+ $ adminUser-> setRoleId ( $ role -> getId ())
7497 ->setEmail ('admin ' . $ i . '@example.com ' )
7598 ->setFirstName ('Firstname ' )
7699 ->setLastName ('Lastname ' )
77100 ->setUserName ('admin ' . $ i )
78101 ->setPassword ('123123q ' )
79102 ->setIsActive (1 );
80103 $ 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 ();
92104 }
93105 }
94106
@@ -109,4 +121,32 @@ public function introduceParamLabels()
109121 'admin_users ' => 'Admin Users '
110122 ];
111123 }
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+ }
112152}
0 commit comments