Example #1
0
 public function testIsGranted()
 {
     $collection = new ResourceCollection(['comments.add', 'comments.edit']);
     $adminRole = new Rbac\Role('admin', ['list_user', Rbac\Resource::create('delete_user')]);
     $this->rbac->addRole($adminRole);
     $adminRole->setResources($collection);
     $this->assertTrue($adminRole->hasResource('comments.add'));
     $this->assertTrue($adminRole->hasResource('comments.edit'));
     $this->assertFalse($adminRole->hasResource('posts.add'));
     $this->assertFalse($this->rbac->isGranted('admin', 'list_user'));
     $this->assertFalse($this->rbac->isGranted($adminRole, 'delete_user'));
     $notExistsRole = new Rbac\Role('notExistsRole');
     $this->setExpectedExceptionRegExp('RuntimeException', sprintf('/Role "%s" does not exists./', preg_quote($notExistsRole->getName(), '/')));
     $this->assertTrue($this->rbac->isGranted($notExistsRole->getName(), 'delete_user'));
 }
Example #2
0
 /**
  * Add role override if exists
  *
  * @param RoleInterface|string     $role      Role name or object
  * @param ResourceCollection|array $resources Role resources
  */
 public static function addRole($role, array $resources = [])
 {
     if ($role instanceof RoleInterface) {
         self::$roles[$role->getName()] = $role;
     } else {
         $role = new Role($role, $resources);
         self::$roles[$role->getName()] = $role;
     }
 }