def test_add_and(self): @predicates.predicate_context_only def allow_all(project_id=None): return project_id == 8 self.permissions.add("books.edit", predicates.has_roles(["manager"])) pd = predicates.has_roles(["manager"]) self.permissions.add_and("books.edit", allow_all) self.assertTrue(self.permissions.has("books.edit", self.superuser)) self.assertFalse(self.permissions.has("books.edit", self.manager)) self.assertFalse(self.permissions.has("books.edit", self.staff)) self.assertTrue( self.permissions.has("books.edit", self.manager, project_id=8)) self.assertFalse( self.permissions.has("books.edit", self.staff, project_id=8))
def test_has_roles(self): self.permissions.add( "books.edit", predicates.has_roles(["manager", "developer", "other", "r"])) self.assertTrue(self.permissions.has("books.edit", self.superuser)) self.assertTrue(self.permissions.has("books.edit", self.manager)) self.assertFalse(self.permissions.has("books.edit", self.staff))
def test_adding_multiple(self): user = User() user_two = User() book = Book(user) self.permissions.add("books.edit", predicates.has_roles(["manager"])) self.permissions.add("books.edit", is_author) self.assertTrue( self.permissions.has("books.edit", self.superuser, book)) self.assertTrue(self.permissions.has("books.edit", self.manager, book)) self.assertFalse(self.permissions.has("books.edit", self.staff)) self.assertTrue(self.permissions.has("books.edit", user, book)) self.assertFalse(self.permissions.has("books.edit", user_two, book)) self.assertFalse(self.permissions.has("books.edit", user))
def test_with_kwargs(self): user = User() user_two = User() book = Book(user) @predicates.predicate_context_only def allow_all(project_id=None): return project_id == 8 self.permissions.add("books.edit", predicates.has_roles(["manager"])) self.permissions.add("books.edit", is_author) self.permissions.add("books.edit", allow_all) self.assertTrue( self.permissions.has("books.edit", self.superuser, book)) self.assertTrue(self.permissions.has("books.edit", self.manager, book)) self.assertFalse(self.permissions.has("books.edit", self.staff)) self.assertTrue(self.permissions.has("books.edit", user, book)) self.assertFalse(self.permissions.has("books.edit", user_two, book)) self.assertFalse(self.permissions.has("books.edit", user)) self.assertTrue(self.permissions.has("books.edit", user, project_id=8)) self.assertTrue( self.permissions.has("books.edit", user_two, book, project_id=8))