SimpleAcl\Acl::isAllowed PHP Method

isAllowed() public method

Checks is access allowed.
public isAllowed ( string | SimpleAcl\Role\RoleAggregateInterface $roleName, string | SimpleAcl\Resource\ResourceAggregateInterface $resourceName, string $ruleName ) : boolean
$roleName string | SimpleAcl\Role\RoleAggregateInterface
$resourceName string | SimpleAcl\Resource\ResourceAggregateInterface
$ruleName string
return boolean
    public function isAllowed($roleName, $resourceName, $ruleName)
    {
        return $this->isAllowedReturnResult($roleName, $resourceName, $ruleName)->get();
    }

Usage Example

Example #1
0
 public function testAddSameRules()
 {
     $acl = new Acl();
     $rule = new Rule('Edit');
     $user = new Role('User');
     $page = new Resource('Page');
     $superUser = new Role('SuperUser');
     $superPage = new Resource('SuperPage');
     $acl->addRule($user, $page, $rule, true);
     $this->assertSame($rule->getRole(), $user);
     $this->assertSame($rule->getResource(), $page);
     // If rule already exist don't add it in Acl, but change Role, Resource and Action
     $acl->addRule($superUser, $superPage, $rule, true);
     $this->assertNotSame($rule->getRole(), $user);
     $this->assertNotSame($rule->getResource(), $page);
     $this->assertSame($rule->getRole(), $superUser);
     $this->assertSame($rule->getResource(), $superPage);
     $this->assertFalse($acl->isAllowed('User', 'Page', 'Edit'));
     $this->assertTrue($acl->isAllowed('SuperUser', 'SuperPage', 'Edit'));
     $acl->addRule($superUser, $superPage, $rule, false);
     $this->assertFalse($acl->isAllowed('SuperUser', 'SuperPage', 'Edit'));
     $this->assertAttributeCount(1, 'rules', $acl);
     // rule should overwrite $role, $resource and $action when they actually used in addRule
     $acl->addRule($superUser, $superPage, $rule);
     $this->assertFalse($acl->isAllowed('SuperUser', 'SuperPage', 'Edit'));
     $this->assertAttributeCount(1, 'rules', $acl);
     $acl->addRule($rule);
     $this->assertFalse($acl->isAllowed('SuperUser', 'SuperPage', 'Edit'));
     $this->assertSame($rule->getRole(), $superUser);
     $this->assertSame($rule->getResource(), $superPage);
     $acl->addRule($rule, true);
     $this->assertTrue($acl->isAllowed('SuperUser', 'SuperPage', 'Edit'));
     $this->assertSame($rule->getRole(), $superUser);
     $this->assertSame($rule->getResource(), $superPage);
 }
All Usage Examples Of SimpleAcl\Acl::isAllowed