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)); }
/** * @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; }
/** * {@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; }
/** * @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; }