Beispiel #1
0
 public function testCreateResource()
 {
     $resource = new AclResource();
     $resource->initialize();
     $this->assertNull($resource->id);
     $result = $resource->save(['name' => 'CreatedResource', 'description' => 'Sample description', 'scope' => '']);
     $this->assertTrue($result);
     $this->assertEquals(AclResource::DIRTY_STATE_PERSISTENT, $resource->getDirtyState());
 }
 public function testIsWildcard()
 {
     $resourceModel = new AclResource();
     $result = $resourceModel->save(['name' => 'IsWildcardResource', 'description' => 'foo bar bazz 1 2', 'scope' => '']);
     $this->assertTrue($result);
     $this->assertEquals(AclResource::DIRTY_STATE_PERSISTENT, $resourceModel->getDirtyState());
     $accessModel = new AclResourceAccess();
     $result = $accessModel->create(['acl_resource_id' => $resourceModel->id, 'name' => '*', 'description' => '', 'inherit' => null]);
     $this->assertTrue($result);
     $this->assertEquals(AclResource::DIRTY_STATE_PERSISTENT, $resourceModel->getDirtyState());
     $this->assertTrue($accessModel->isWildcard());
     $accessModel->name = 'not wildcard test foo';
     $this->assertFalse($accessModel->isWildcard());
 }
Beispiel #3
0
 public function testToAccessArray()
 {
     $resourceModel = new AclResource();
     $result = $resourceModel->save(['name' => 'toAccessArrayResource', 'description' => 'foo bar baz', 'scope' => '']);
     $this->assertTrue($result);
     $roleModel = new AclRole();
     $roleModel->create(['name' => 'toAccessArrayRole', 'description' => '', 'removable' => true]);
     $accessModel = new AclResourceAccess();
     $accessModel->create(['acl_resource_id' => $resourceModel->id, 'name' => 'index', 'description' => '', 'inherit' => null]);
     $aclModel = new AclAccessList();
     $aclModel->create(['acl_role_id' => $roleModel->id, 'acl_resource_id' => $resourceModel->id, 'acl_resource_access_id' => $accessModel->id, 'allowed' => false]);
     $accessArray = ['access_name' => (string) $accessModel, 'resources_name' => (string) $resourceModel, 'allowed' => false];
     $toAccessArray = $aclModel->toAccessArray();
     $this->assertSame($toAccessArray, $accessArray);
 }
Beispiel #4
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  \Phalcon\Acl\Resource $resource
  * @param  array|string          $accessList
  * @return boolean
  */
 public function addResource($resource, $accessList = null)
 {
     if (!$resource instanceof Resource) {
         $resource = new Resource($resource);
     }
     try {
         $resourceModel = $this->getResourceModel($resource->getName());
     } catch (ResourceNotExistsException $e) {
         $resourceModel = new AclResource();
     }
     $resourceModel->save(['name' => $this->filterResourceName($resource->getName()), 'description' => $resource->getDescription(), 'scope' => $resource->getScope()]);
     if ($accessList) {
         return $this->addResourceAccess($resource->getName(), $accessList);
     }
     return true;
 }