/** * Prepare grid collection object * * @return Mage_Api2_Block_Adminhtml_Permissions_User_Edit_Tab_Roles */ protected function _prepareCollection() { /** @var $collection Mage_Api2_Model_Resource_Acl_Global_Role_Collection */ $collection = Mage::getResourceModel('api2/acl_global_role_collection'); $collection->addFieldToFilter('entity_id', array('nin' => Mage_Api2_Model_Acl_Global_Role::getSystemRoles())); $this->setCollection($collection); return parent::_prepareCollection(); }
/** * Retrieve rules data from DB and inject it into ACL * * @return Mage_Api2_Model_Acl */ protected function _setRules() { $resources = $this->getResources(); /** @var Mage_Api2_Model_Resource_Acl_Global_Rule_Collection $rulesCollection */ $rulesCollection = Mage::getResourceModel('api2/acl_global_rule_collection'); foreach ($rulesCollection as $rule) { /** @var Mage_Api2_Model_Acl_Global_Rule $rule */ if (Mage_Api2_Model_Acl_Global_Rule::RESOURCE_ALL === $rule->getResourceId()) { if (in_array($rule->getRoleId(), Mage_Api2_Model_Acl_Global_Role::getSystemRoles())) { /** @var Mage_Api2_Model_Acl_Global_Role $role */ $role = $this->_getRolesCollection()->getItemById($rule->getRoleId()); $privileges = $this->_getConfig()->getResourceUserPrivileges($this->_resourceType, $role->getConfigNodeName()); if (!array_key_exists($this->_operation, $privileges)) { continue; } } $this->allow($rule->getRoleId()); } elseif (in_array($rule->getResourceId(), $resources)) { $this->allow($rule->getRoleId(), $rule->getResourceId(), $rule->getPrivilege()); } } return $this; }