示例#1
0
 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'));
 }
示例#2
0
 /**
  * @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'));
 }
示例#3
0
 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(), '');
 }
示例#4
0
 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());
 }
示例#5
0
 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));
 }