Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
 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;
 }