public function test_user_has_permission_when_role_has_permission_with_object() { $role = new RoleMock(); $role->setPermissions([new \LaravelDoctrine\ACL\Permissions\Permission('create.post')]); $this->userWithRoles->setRoles([$role]); $this->assertTrue($this->userWithRoles->hasPermissionTo('create.post')); }
/** * @test */ public function it_adds_roles_capability_to_eloquent_models() { $user = new User(['name' => 'Joshua', 'role' => 'customer']); App::make(Rooles\Contracts\RoleRepository::class)->create('customer')->grant(['products.read', 'products.write']); $this->assertTrue($user->can('products.read')); $this->assertFalse($user->can('products.edit')); }
function testUser_Rule_Islevel() { $level = 5; $forward = array('foo'); $field = 'level'; $rule = new A_User_Rule_Islevel($level, $forward, $field); $user = new UserMock(); // all level checks will fail if not logged in $user->setLoggedIn(false); // level not set, not logged in $this->assertFalse($rule->isValid($user)); $this->assertFalse($rule->setUser($user)->isValid()); $this->assertEqual($rule->getErrorMsg(), $forward); // level less than, not logged in $user->set($field, 4); $this->assertFalse($rule->isValid($user)); $this->assertFalse($rule->setUser($user)->isValid()); $this->assertEqual($rule->getErrorMsg(), $forward); // level greater than, not logged in $user->set($field, 6); $this->assertFalse($rule->isValid($user)); $this->assertFalse($rule->setUser($user)->isValid()); $this->assertEqual($rule->getErrorMsg(), $forward); $user->setLoggedIn(true); // level less than, not logged in $user->set($field, 4); $this->assertFalse($rule->isValid($user)); $this->assertFalse($rule->setUser($user)->isValid()); $this->assertEqual($rule->getErrorMsg(), $forward); // level equal to $user->set($field, 5); $this->assertTrue($rule->isValid($user)); $this->assertTrue($rule->setUser($user)->isValid()); $this->assertEqual($rule->getErrorMsg(), ''); // level greater than $user->set($field, 5); $this->assertTrue($rule->isValid($user)); $this->assertTrue($rule->setUser($user)->isValid()); $this->assertEqual($rule->getErrorMsg(), ''); }
function testUser_Rule_Ingroup() { $groups_str = 'foo|bar'; $groups_array = array('foo', 'bar'); $forward = array('x'); $field = 'access'; $delimiter = '|'; $rule = new A_User_Rule_Ingroup('box|fox', $forward); $user = new UserMock(); // all level checks will fail if not logged in $user->setLoggedIn(false); // level not set, not logged in $this->assertFalse($rule->isValid($user)); $this->assertFalse($rule->setUser($user)->isValid()); $this->assertEqual($rule->getErrorMsg(), $forward); // level less than, not logged in $user->set($field, 4); $this->assertFalse($rule->isValid($user)); $this->assertFalse($rule->setUser($user)->isValid()); $this->assertEqual($rule->getErrorMsg(), $forward); // level greater than, not logged in $user->set($field, 6); $this->assertFalse($rule->isValid($user)); $this->assertFalse($rule->setUser($user)->isValid()); $this->assertEqual($rule->getErrorMsg(), $forward); $user->setLoggedIn(true); $user->set($field, $groups_array); $rule->setGroups('baz|bat'); $this->assertFalse($rule->isValid($user)); $this->assertFalse($rule->setUser($user)->isValid()); $this->assertEqual($rule->getErrorMsg(), $forward); $rule->setGroups('foo'); $this->assertTrue($rule->isValid($user)); $this->assertTrue($rule->setUser($user)->isValid()); $this->assertEqual($rule->getErrorMsg(), array()); $rule->setGroups('bar'); $this->assertTrue($rule->isValid($user)); $this->assertTrue($rule->setUser($user)->isValid()); $this->assertEqual($rule->getErrorMsg(), array()); }
public function test_has_permission_and_all_permissions() { $this->user->setPermissions(['create.page', 'create.post']); $this->assertTrue($this->user->hasPermissionTo(['create.post', 'create.page'], true)); }