Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace ModuleNameSpaceYourModuleNameSetup;
- use MagentoFrameworkSetupInstallDataInterface;
- use MagentoFrameworkSetupModuleContextInterface;
- use MagentoFrameworkSetupModuleDataSetupInterface;
- /* For get RoleType and UserType for create Role */;
- use MagentoAuthorizationModelAclRoleGroup as RoleGroup;
- use MagentoAuthorizationModelUserContextInterface;
- /** * @codeCoverageIgnore */
- class InstallData implements InstallDataInterface {
- /** * RoleFactory * * @var roleFactory */
- private $roleFactory;
- /** * RulesFactory * * @var rulesFactory */
- private $rulesFactory;
- /** * Init * * @param MagentoAuthorizationModelRoleFactory $roleFactory * @param MagentoAuthorizationModelRulesFactory $rulesFactory */
- public function __construct(
- MagentoAuthorizationModelRoleFactory $roleFactory, /* Instance of Role*/
- MagentoAuthorizationModelRulesFactory $rulesFactory /* Instance of Rule */
- /*this define that which resource permitted to wich role */ ) {
- $this->roleFactory = $roleFactory;
- $this->rulesFactory = $rulesFactory;
- }
- /** * {@inheritdoc} * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */
- public function install(
- ModuleDataSetupInterface $setup,
- ModuleContextInterface $context) {
- /** * Create Warehouse role */
- $role=$this->roleFactory->create();
- $role->setName('YourRoleName') //Set Role Name Which you want to create
- ->setPid(0) //set parent role id of your role
- ->setRoleType(RoleGroup::ROLE_TYPE)
- ->setUserType(UserContextInterface::USER_TYPE_ADMIN);
- $role->save();
- /* Now we set that which resources we allow to this role */ $resource=[
- 'Magento_Backend::admin',
- 'Magento_Sales::sales'
- ];
- /* Array of resource ids which we want to allow this role*/
- $this->rulesFactory->create()->setRoleId($role->getId())->setResources($resource)->saveRel();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement