Exemple #1
0
    def test_only_roles_from_current_organization_is_returned(self):
        grp = Group.objects.create(name="1", group_type=self.org_group_type)
        grp2 = Group.objects.create(name="2", group_type=self.org_group_type)
        
        role1 = GroupMemberRole.objects.create(codename="1")
        role2 = GroupMemberRole.objects.create(codename="2")

        grp.add_member(self.member, roles=[role1])
        grp2.add_member(self.member, roles=[role2])

        self.assertEqual(get_user_roles(self.user).get(), role1)

        self.user.user_profile.current_organization = grp2
        self.user.user_profile.save()
        self.assertEqual(get_user_roles(self.user).get(), role2)
Exemple #2
0
def _get_permission_objs(user, obj=None):
    perms = Permission.objects.none()
    org = user.user_profile.current_organization
    if org is not None:
        if obj is not None:
            start_grp = obj.group
        else:
            start_grp = org

        roles = get_user_roles(user, start_grp)
        perms = Permission.objects.filter(roles__in=roles)

    return perms.distinct()
Exemple #3
0
    def test_user_added_to_middle_group_of_tree(self):
        """
        With the following tree of groups:
           * Group 1
             * Group 2
               * Group 3
                 * Group 4
               * Group 5
             * Group 6

        If the user is added to "Group 2" they are also member of all groups
        below it. The role for their current organization are fetched from that
        organization and all organizations above it.

        I.e. if the user's current organization is "Group 3" the roles would be
        fetched from Group 1, 2 and 3
        """

        grp1 = Group.objects.create(name="1", group_type=self.org_group_type)
        grp2 = Group.objects.create(name="2", group_type=self.org_group_type, parent=grp1)
        grp3 = Group.objects.create(name="3", group_type=self.org_group_type, parent=grp2)
        grp4 = Group.objects.create(name="4", group_type=self.org_group_type, parent=grp3)
        grp5 = Group.objects.create(name="5", group_type=self.org_group_type, parent=grp2)
        grp6 = Group.objects.create(name="6", group_type=self.org_group_type, parent=grp1)

        role1 = GroupMemberRole.objects.create(codename="1")
        role2 = GroupMemberRole.objects.create(codename="2")
        role3 = GroupMemberRole.objects.create(codename="3")
        role4 = GroupMemberRole.objects.create(codename="4")
        role5 = GroupMemberRole.objects.create(codename="5")
        role6 = GroupMemberRole.objects.create(codename="6")

        grp1.add_member(self.member, roles=[role1])
        grp2.add_member(self.member, roles=[role2])
        grp3.add_member(self.member, roles=[role3])
        grp4.add_member(self.member, roles=[role4])
        grp5.add_member(self.member, roles=[role5])
        grp6.add_member(self.member, roles=[role6])

        self.user.user_profile.current_organization = grp3
        self.user.user_profile.save()
        six.assertCountEqual(self, list(get_user_roles(self.user).values_list('codename', flat=True)), ['1', '2', '3'])
Exemple #4
0
    def test_non_organization_group_created_for_user_with_role(self):
        grp = Group.objects.create()
        role = GroupMemberRole.objects.create()
        grp.add_member(self.member, roles=[role])

        self.assertFalse(get_user_roles(self.user).exists())
Exemple #5
0
    def test_organization_group_created_for_user_with_no_roles(self):
        grp = Group.objects.create(group_type=self.org_group_type)
        grp.add_member(self.member)

        self.assertFalse(get_user_roles(self.user).exists())
Exemple #6
0
 def test_no_groups_created_for_user(self):
     Group.objects.create()
     self.assertFalse(get_user_roles(self.user).exists())
Exemple #7
0
 def test_no_groups_created(self):
     self.assertFalse(get_user_roles(self.user).exists())
Exemple #8
0
    def test_organization_group_created_for_user_with_role(self):
        grp = Group.objects.create(group_type=self.org_group_type)
        role = GroupMemberRole.objects.create()
        grp.add_member(self.member, roles=[role])

        self.assertEqual(get_user_roles(self.user).get(), role)