public function getAcl() { if ($this->acl) { return $this->acl; } $cache = $this->getCache(); if ($cache && ($data = $cache->get('acl'))) { return $this->acl = $data; } $acl = new MemoryAcl(); $acl->setDefaultAction(Acl::DENY); $roles = Entities\Roles::find(); foreach ($roles as $role) { $roleName = $role->name ? $role->name : $role->roleKey; $acl->addRole($role->roleKey, $role->roleKey); } $resources = Entities\Resources::find(); foreach ($resources as $resource) { $acl->addResource($resource->resourceKey); } $operations = Entities\Operations::find(); foreach ($operations as $operation) { $acl->addResourceAccess($operation->resourceKey, $operation->operationKey); if ($operation->roles) { foreach ($operation->roles as $role) { $acl->allow($role->roleKey, $operation->resourceKey, $operation->operationKey); } } } if ($cache) { $cache->save('acl', $acl); } return $this->acl = $acl; }
public function addResourceGroup() { if ($this->group) { return $this->group; } $groups = Entities\Resources::find(array('columns' => array('resourceGroup'), 'group' => 'resourceGroup')); $options = array('All Groups'); if ($groups) { foreach ($groups as $group) { $options[$group->resourceGroup] = $group->resourceGroup; } } $element = new Select('group', $options); $this->add($element); return $this->group = $element; }