24 lines
849 B
Python
24 lines
849 B
Python
from django.contrib.auth import get_user_model
|
|
from django.test import TestCase
|
|
|
|
from apps.rbac.models import Permission, Role
|
|
from apps.rbac.permissions import has_perm
|
|
|
|
User = get_user_model()
|
|
|
|
|
|
class RbacTests(TestCase):
|
|
def test_has_perm_grants_and_denies(self):
|
|
user = User.objects.create_user(username="op", password="x")
|
|
perm = Permission.objects.create(code="processing.start")
|
|
role = Role.objects.create(name="Operator", slug="operator")
|
|
role.permissions.add(perm)
|
|
user.user_roles.create(role=role)
|
|
|
|
self.assertTrue(has_perm(user, "processing.start"))
|
|
self.assertFalse(has_perm(user, "workflow.publish"))
|
|
|
|
def test_superuser_has_all(self):
|
|
user = User.objects.create_superuser(username="admin", password="x")
|
|
self.assertTrue(has_perm(user, "anything.at.all"))
|