Ejemplo n.º 1
0
 public function getResourceAction()
 {
     if ($this->request->isPost()) {
         if ($this->request->isAjax()) {
             $request = $this->request->getPost('resource');
             $resource = AclResources::findFirstByName($request);
             $payload = array('error' => 0);
             if ($resource) {
                 $payload['error'] = 0;
                 $payload['description'] = $resource->description;
                 if ($resource->name != '*') {
                     $resourceAccess = AclResourcesAccess::findByResourcesName($resource->name)->toArray();
                 } else {
                     $resourceAccess = AclResourcesAccess::find()->toArray();
                 }
                 $payload['data'] = $resourceAccess;
             } else {
                 $payload['error'] = 1;
                 $payload['message'] = _('No ACL Resources found');
             }
             return $this->sendAjax($payload);
         }
     }
 }
Ejemplo n.º 2
0
 public function addResourceAccess($resourceName, $accessList)
 {
     if (!$this->isResource($resourceName)) {
         throw new \Exception("Resource '{$resourceName}' does not exist in ACL");
     }
     if (!is_array($accessList) && !is_string($accessList)) {
         throw new \Exception("Invalid value for accessList");
     }
     if (!is_array($accessList)) {
         $accessList = array($accessList);
     }
     foreach ($accessList as $accessName) {
         if (!$this->isResourceAccess($resourceName, $accessName)) {
             $resourceAccess = new AclResourcesAccess();
             $resourceAccess->resources_name = $resourceName;
             $resourceAccess->access_name = $accessName;
             $resourceAccess->save();
         }
     }
     return true;
 }