/** * Action to shw overview of all privileges */ public function overviewAction() { $roles = array(); foreach ($this->acl->getRolePrivileges() as $role => $privileges) { $roles[$role][$this->_('Role')] = $role; $roles[$role][$this->_('Parents')] = $privileges[\MUtil_Acl::PARENTS] ? implode(', ', $privileges[\MUtil_Acl::PARENTS]) : null; $roles[$role][$this->_('Allowed')] = $privileges[\Zend_Acl::TYPE_ALLOW] ? implode(', ', $privileges[\Zend_Acl::TYPE_ALLOW]) : null; //$roles[$role][$this->_('Denied')] = $privileges[\Zend_Acl::TYPE_DENY] ? implode(', ', $privileges[\Zend_Acl::TYPE_DENY]) : null; $roles[$role][$this->_('Inherited')] = $privileges[\MUtil_Acl::INHERITED][\Zend_Acl::TYPE_ALLOW] ? implode(', ', $privileges[\MUtil_Acl::INHERITED][\Zend_Acl::TYPE_ALLOW]) : null; //$roles[$role][$this->_('Parent denied')] = $privileges[\MUtil_Acl::INHERITED][\Zend_Acl::TYPE_DENY] ? implode(', ', $privileges[\MUtil_Acl::INHERITED][\Zend_Acl::TYPE_DENY]) : null; } ksort($roles); $this->html->h2($this->_('Project role overview')); $this->_showTable($this->_('Roles'), $roles, true); }
/** * Get the privileges for thess parents * * @param array $parents * @return array privilege => setting */ protected function getInheritedPrivileges(array $parents) { if (!$parents) { return array(); } $rolePrivileges = $this->acl->getRolePrivileges(); $inherited = array(); foreach ($parents as $parent) { if (isset($rolePrivileges[$parent])) { $inherited = $inherited + array_flip($rolePrivileges[$parent][\Zend_Acl::TYPE_ALLOW]); $inherited = $inherited + array_flip($rolePrivileges[$parent][\MUtil_Acl::INHERITED][\Zend_Acl::TYPE_ALLOW]); } } // Sneaks in: unset($inherited[""]); return $inherited; }