Example #1
0
 public function testHasAccesses()
 {
     $accessName = 'FooAccessNameTest';
     $accesses = [['access_name' => $accessName, 'access_description' => 'some description']];
     $resource = new Resource('testResourceFoo', 'DescriptionOfTheTestResource');
     $this->assertFalse($resource->hasAccess($accessName));
     $resource->setAccesses($accesses);
     $this->assertTrue($resource->hasAccess($accessName));
 }
Example #2
0
 /**
  * @param $name
  * @param $description
  * @param array $accessList
  * @param string $scope
  * @throws Exception\InvalidResourceNameException
  * @return bool
  */
 public function add($name, $description, $accessList = array(), $scope = '')
 {
     if (!$name) {
         throw new InvalidResourceNameException();
     }
     $resource = new Resource($name, $description);
     $resource->setScope($scope);
     $result = $this->adapter->addResource($resource, $accessList);
     return $result;
 }
Example #3
0
 /**
  * {@inheritdoc}
  * Example:
  * <code>
  * //Add a resource to the the list allowing access to an action
  * $acl->addResource(new \Phalcon\Acl\Resource('customers'), 'search');
  * $acl->addResource('customers', 'search');
  * //Add a resource  with an access list
  * $acl->addResource(new \Phalcon\Acl\Resource('customers'), array('create', 'search'));
  * $acl->addResource('customers', array('create', 'search'));
  * </code>
  *
  * @param  string|\Phalcon\Acl\Resource|string  $resource
  * @param  array|string                         $accessList
  * @return boolean
  */
 public function addResource($resource, $accessList = null)
 {
     if (!is_object($resource)) {
         $resource = new Resource($resource);
     }
     $resources = $this->getCollection('resources');
     $currentResource = $resources->findOne(array('name' => $this->filterResourceName($resource->getName())));
     if (!$currentResource) {
         $resources->insert(array('name' => $this->filterResourceName($resource->getName()), 'description' => $resource->getDescription(), 'scope' => $resource->getScope()));
     } else {
         $resources->update(array('_id' => $currentResource['_id']), array('name' => $this->filterResourceName($resource->getName()), 'description' => $resource->getDescription(), 'scope' => $resource->getScope()));
     }
     if ($accessList) {
         return $this->addResourceAccess($resource->getName(), $accessList);
     }
     return true;
 }
Example #4
0
 /**
  * @param $name
  * @return Resource|null
  */
 public function getResource($name)
 {
     $resource = $this->getResourceModel($name);
     $resourceObject = new Resource($resource->name, $resource->description);
     $resourceObject->setAccesses($resource->getAccessesAsArray());
     return $resourceObject;
 }