authentik.blueprints.tests.test_v1_rbac

Test blueprints v1

 1"""Test blueprints v1"""
 2
 3from django.test import TransactionTestCase
 4from guardian.shortcuts import get_perms
 5
 6from authentik.blueprints.v1.importer import Importer
 7from authentik.core.models import User
 8from authentik.flows.models import Flow
 9from authentik.lib.generators import generate_id
10from authentik.lib.tests.utils import load_fixture
11from authentik.rbac.models import Role
12
13
14class TestBlueprintsV1RBAC(TransactionTestCase):
15    """Test Blueprints rbac attribute"""
16
17    def test_user_permission(self):
18        """Test permissions"""
19        uid = generate_id()
20        import_yaml = load_fixture("fixtures/rbac_user.yaml", id=uid)
21
22        importer = Importer.from_string(import_yaml)
23        self.assertTrue(importer.validate()[0])
24        self.assertTrue(importer.apply())
25        user = User.objects.filter(username=uid).first()
26        self.assertIsNotNone(user)
27        self.assertTrue(user.has_perms(["authentik_blueprints.view_blueprintinstance"]))
28
29    def test_role_permission(self):
30        """Test permissions"""
31        uid = generate_id()
32        import_yaml = load_fixture("fixtures/rbac_role.yaml", id=uid)
33
34        importer = Importer.from_string(import_yaml)
35        self.assertTrue(importer.validate()[0])
36        self.assertTrue(importer.apply())
37        role = Role.objects.filter(name=uid).first()
38        self.assertIsNotNone(role)
39        self.assertEqual(get_perms(role), {"authentik_blueprints.view_blueprintinstance"})
40
41    def test_object_permission(self):
42        """Test permissions"""
43        uid = generate_id()
44        import_yaml = load_fixture("fixtures/rbac_object.yaml", id=uid)
45
46        importer = Importer.from_string(import_yaml)
47        self.assertTrue(importer.validate()[0])
48        self.assertTrue(importer.apply())
49        flow = Flow.objects.filter(slug=uid).first()
50        user = User.objects.filter(username=uid).first()
51        role = Role.objects.filter(name=uid).first()
52        self.assertIsNotNone(flow)
53        self.assertEqual(get_perms(user, flow), {"authentik_flows.view_flow"})
54        self.assertEqual(get_perms(role, flow), {"authentik_flows.view_flow"})
class TestBlueprintsV1RBAC(django.test.testcases.TransactionTestCase):
15class TestBlueprintsV1RBAC(TransactionTestCase):
16    """Test Blueprints rbac attribute"""
17
18    def test_user_permission(self):
19        """Test permissions"""
20        uid = generate_id()
21        import_yaml = load_fixture("fixtures/rbac_user.yaml", id=uid)
22
23        importer = Importer.from_string(import_yaml)
24        self.assertTrue(importer.validate()[0])
25        self.assertTrue(importer.apply())
26        user = User.objects.filter(username=uid).first()
27        self.assertIsNotNone(user)
28        self.assertTrue(user.has_perms(["authentik_blueprints.view_blueprintinstance"]))
29
30    def test_role_permission(self):
31        """Test permissions"""
32        uid = generate_id()
33        import_yaml = load_fixture("fixtures/rbac_role.yaml", id=uid)
34
35        importer = Importer.from_string(import_yaml)
36        self.assertTrue(importer.validate()[0])
37        self.assertTrue(importer.apply())
38        role = Role.objects.filter(name=uid).first()
39        self.assertIsNotNone(role)
40        self.assertEqual(get_perms(role), {"authentik_blueprints.view_blueprintinstance"})
41
42    def test_object_permission(self):
43        """Test permissions"""
44        uid = generate_id()
45        import_yaml = load_fixture("fixtures/rbac_object.yaml", id=uid)
46
47        importer = Importer.from_string(import_yaml)
48        self.assertTrue(importer.validate()[0])
49        self.assertTrue(importer.apply())
50        flow = Flow.objects.filter(slug=uid).first()
51        user = User.objects.filter(username=uid).first()
52        role = Role.objects.filter(name=uid).first()
53        self.assertIsNotNone(flow)
54        self.assertEqual(get_perms(user, flow), {"authentik_flows.view_flow"})
55        self.assertEqual(get_perms(role, flow), {"authentik_flows.view_flow"})

Test Blueprints rbac attribute

def test_user_permission(self):
18    def test_user_permission(self):
19        """Test permissions"""
20        uid = generate_id()
21        import_yaml = load_fixture("fixtures/rbac_user.yaml", id=uid)
22
23        importer = Importer.from_string(import_yaml)
24        self.assertTrue(importer.validate()[0])
25        self.assertTrue(importer.apply())
26        user = User.objects.filter(username=uid).first()
27        self.assertIsNotNone(user)
28        self.assertTrue(user.has_perms(["authentik_blueprints.view_blueprintinstance"]))

Test permissions

def test_role_permission(self):
30    def test_role_permission(self):
31        """Test permissions"""
32        uid = generate_id()
33        import_yaml = load_fixture("fixtures/rbac_role.yaml", id=uid)
34
35        importer = Importer.from_string(import_yaml)
36        self.assertTrue(importer.validate()[0])
37        self.assertTrue(importer.apply())
38        role = Role.objects.filter(name=uid).first()
39        self.assertIsNotNone(role)
40        self.assertEqual(get_perms(role), {"authentik_blueprints.view_blueprintinstance"})

Test permissions

def test_object_permission(self):
42    def test_object_permission(self):
43        """Test permissions"""
44        uid = generate_id()
45        import_yaml = load_fixture("fixtures/rbac_object.yaml", id=uid)
46
47        importer = Importer.from_string(import_yaml)
48        self.assertTrue(importer.validate()[0])
49        self.assertTrue(importer.apply())
50        flow = Flow.objects.filter(slug=uid).first()
51        user = User.objects.filter(username=uid).first()
52        role = Role.objects.filter(name=uid).first()
53        self.assertIsNotNone(flow)
54        self.assertEqual(get_perms(user, flow), {"authentik_flows.view_flow"})
55        self.assertEqual(get_perms(role, flow), {"authentik_flows.view_flow"})

Test permissions