authentik.core.tests.test_groups

group tests

 1"""group tests"""
 2
 3from django.test.testcases import TestCase
 4
 5from authentik.core.models import Group, User
 6from authentik.lib.generators import generate_id
 7
 8
 9class TestGroups(TestCase):
10    """Test group membership"""
11
12    def test_group_membership_simple(self):
13        """Test simple membership"""
14        user = User.objects.create(username=generate_id())
15        user2 = User.objects.create(username=generate_id())
16        group = Group.objects.create(name=generate_id())
17        other_group = Group.objects.create(name=generate_id())
18        group.users.add(user)
19        other_group.users.add(user)
20        self.assertTrue(group.is_member(user))
21        self.assertFalse(group.is_member(user2))
22
23    def test_group_membership_parent(self):
24        """Test parent membership"""
25        user = User.objects.create(username=generate_id())
26        user2 = User.objects.create(username=generate_id())
27        parent = Group.objects.create(name=generate_id())
28        child = Group.objects.create(name=generate_id())
29        child.parents.add(parent)
30        child.users.add(user)
31        self.assertTrue(child.is_member(user))
32        self.assertTrue(parent.is_member(user))
33        self.assertFalse(child.is_member(user2))
34        self.assertFalse(parent.is_member(user2))
35
36    def test_group_membership_parent_extra(self):
37        """Test parent membership"""
38        user = User.objects.create(username=generate_id())
39        user2 = User.objects.create(username=generate_id())
40        parent = Group.objects.create(name=generate_id())
41        second = Group.objects.create(name=generate_id())
42        second.parents.add(parent)
43        third = Group.objects.create(name=generate_id())
44        third.parents.add(second)
45        second.users.add(user)
46        self.assertTrue(parent.is_member(user))
47        self.assertFalse(parent.is_member(user2))
48        self.assertTrue(second.is_member(user))
49        self.assertFalse(second.is_member(user2))
50        self.assertFalse(third.is_member(user))
51        self.assertFalse(third.is_member(user2))
52
53    def test_group_membership_recursive(self):
54        """Test group membership (recursive)"""
55        user = User.objects.create(username=generate_id())
56        group = Group.objects.create(name=generate_id())
57        group2 = Group.objects.create(name=generate_id())
58        group.parents.add(group2)
59        group2.parents.add(group)
60        group.users.add(user)
61        group.save()
62        self.assertTrue(group.is_member(user))
63        self.assertTrue(group2.is_member(user))
64
65    def test_group_managed_role(self):
66        """Test group managed role"""
67        perm = "authentik_core.view_user"
68        user = User.objects.create(username=generate_id())
69        group = Group.objects.create(name=generate_id())
70        group.users.add(user)
71        group.assign_perms_to_managed_role(perm)
72        self.assertEqual(group.roles.count(), 1)
73        self.assertEqual(user.roles.count(), 0)
74        self.assertTrue(user.has_perm(perm))
class TestGroups(django.test.testcases.TestCase):
10class TestGroups(TestCase):
11    """Test group membership"""
12
13    def test_group_membership_simple(self):
14        """Test simple membership"""
15        user = User.objects.create(username=generate_id())
16        user2 = User.objects.create(username=generate_id())
17        group = Group.objects.create(name=generate_id())
18        other_group = Group.objects.create(name=generate_id())
19        group.users.add(user)
20        other_group.users.add(user)
21        self.assertTrue(group.is_member(user))
22        self.assertFalse(group.is_member(user2))
23
24    def test_group_membership_parent(self):
25        """Test parent membership"""
26        user = User.objects.create(username=generate_id())
27        user2 = User.objects.create(username=generate_id())
28        parent = Group.objects.create(name=generate_id())
29        child = Group.objects.create(name=generate_id())
30        child.parents.add(parent)
31        child.users.add(user)
32        self.assertTrue(child.is_member(user))
33        self.assertTrue(parent.is_member(user))
34        self.assertFalse(child.is_member(user2))
35        self.assertFalse(parent.is_member(user2))
36
37    def test_group_membership_parent_extra(self):
38        """Test parent membership"""
39        user = User.objects.create(username=generate_id())
40        user2 = User.objects.create(username=generate_id())
41        parent = Group.objects.create(name=generate_id())
42        second = Group.objects.create(name=generate_id())
43        second.parents.add(parent)
44        third = Group.objects.create(name=generate_id())
45        third.parents.add(second)
46        second.users.add(user)
47        self.assertTrue(parent.is_member(user))
48        self.assertFalse(parent.is_member(user2))
49        self.assertTrue(second.is_member(user))
50        self.assertFalse(second.is_member(user2))
51        self.assertFalse(third.is_member(user))
52        self.assertFalse(third.is_member(user2))
53
54    def test_group_membership_recursive(self):
55        """Test group membership (recursive)"""
56        user = User.objects.create(username=generate_id())
57        group = Group.objects.create(name=generate_id())
58        group2 = Group.objects.create(name=generate_id())
59        group.parents.add(group2)
60        group2.parents.add(group)
61        group.users.add(user)
62        group.save()
63        self.assertTrue(group.is_member(user))
64        self.assertTrue(group2.is_member(user))
65
66    def test_group_managed_role(self):
67        """Test group managed role"""
68        perm = "authentik_core.view_user"
69        user = User.objects.create(username=generate_id())
70        group = Group.objects.create(name=generate_id())
71        group.users.add(user)
72        group.assign_perms_to_managed_role(perm)
73        self.assertEqual(group.roles.count(), 1)
74        self.assertEqual(user.roles.count(), 0)
75        self.assertTrue(user.has_perm(perm))

Test group membership

def test_group_membership_simple(self):
13    def test_group_membership_simple(self):
14        """Test simple membership"""
15        user = User.objects.create(username=generate_id())
16        user2 = User.objects.create(username=generate_id())
17        group = Group.objects.create(name=generate_id())
18        other_group = Group.objects.create(name=generate_id())
19        group.users.add(user)
20        other_group.users.add(user)
21        self.assertTrue(group.is_member(user))
22        self.assertFalse(group.is_member(user2))

Test simple membership

def test_group_membership_parent(self):
24    def test_group_membership_parent(self):
25        """Test parent membership"""
26        user = User.objects.create(username=generate_id())
27        user2 = User.objects.create(username=generate_id())
28        parent = Group.objects.create(name=generate_id())
29        child = Group.objects.create(name=generate_id())
30        child.parents.add(parent)
31        child.users.add(user)
32        self.assertTrue(child.is_member(user))
33        self.assertTrue(parent.is_member(user))
34        self.assertFalse(child.is_member(user2))
35        self.assertFalse(parent.is_member(user2))

Test parent membership

def test_group_membership_parent_extra(self):
37    def test_group_membership_parent_extra(self):
38        """Test parent membership"""
39        user = User.objects.create(username=generate_id())
40        user2 = User.objects.create(username=generate_id())
41        parent = Group.objects.create(name=generate_id())
42        second = Group.objects.create(name=generate_id())
43        second.parents.add(parent)
44        third = Group.objects.create(name=generate_id())
45        third.parents.add(second)
46        second.users.add(user)
47        self.assertTrue(parent.is_member(user))
48        self.assertFalse(parent.is_member(user2))
49        self.assertTrue(second.is_member(user))
50        self.assertFalse(second.is_member(user2))
51        self.assertFalse(third.is_member(user))
52        self.assertFalse(third.is_member(user2))

Test parent membership

def test_group_membership_recursive(self):
54    def test_group_membership_recursive(self):
55        """Test group membership (recursive)"""
56        user = User.objects.create(username=generate_id())
57        group = Group.objects.create(name=generate_id())
58        group2 = Group.objects.create(name=generate_id())
59        group.parents.add(group2)
60        group2.parents.add(group)
61        group.users.add(user)
62        group.save()
63        self.assertTrue(group.is_member(user))
64        self.assertTrue(group2.is_member(user))

Test group membership (recursive)

def test_group_managed_role(self):
66    def test_group_managed_role(self):
67        """Test group managed role"""
68        perm = "authentik_core.view_user"
69        user = User.objects.create(username=generate_id())
70        group = Group.objects.create(name=generate_id())
71        group.users.add(user)
72        group.assign_perms_to_managed_role(perm)
73        self.assertEqual(group.roles.count(), 1)
74        self.assertEqual(user.roles.count(), 0)
75        self.assertTrue(user.has_perm(perm))

Test group managed role