Ejemplo n.º 1
0
 /**
  * Check whether given role has access to give id
  *
  * @param string $roleId
  * @param string $resourceId
  * @param mixed $privilege
  * @return bool
  */
 public function isAllowed($roleId, $resourceId, $privilege = null)
 {
     try {
         return $this->_acl->isAllowed($roleId, $resourceId, $privilege);
     } catch (Exception $e) {
         try {
             if (!$this->_acl->has($resourceId)) {
                 return $this->_acl->isAllowed($roleId, null, $privilege);
             }
         } catch (Exception $e) {
         }
     }
     return false;
 }
Ejemplo n.º 2
0
 /**
  * Load virtual resources as sub-resources of existing one.
  *
  * @param Magento_Acl $acl
  */
 protected function _loadVirtualResources(Magento_Acl $acl)
 {
     $virtualResources = $this->_config->getAclVirtualResources();
     /** @var $resourceConfig DOMElement */
     foreach ($virtualResources as $resourceConfig) {
         if (!$resourceConfig instanceof DOMElement) {
             continue;
         }
         $parent = $resourceConfig->getAttribute('parent');
         $resourceId = $resourceConfig->getAttribute('id');
         if ($acl->has($parent) && !$acl->has($resourceId)) {
             /** @var $resource Magento_Acl_Resource */
             $resource = $this->_resourceFactory->createResource(array($resourceId));
             $acl->addResource($resource, $parent);
         }
     }
 }
Ejemplo n.º 3
0
 /**
  * Populate ACL with rules from external storage.
  *
  * @param Magento_Acl $acl
  */
 public function populateAcl(Magento_Acl $acl)
 {
     $ruleList = $this->_ruleResource->getRuleList();
     foreach ($ruleList as $rule) {
         $role = $rule['role_id'];
         $resource = $rule['resource_id'];
         if ($acl->hasRole($role) && $acl->has($resource)) {
             $acl->allow($role, $resource);
         }
     }
 }