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)
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()
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'])
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())
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())
def test_no_groups_created_for_user(self): Group.objects.create() self.assertFalse(get_user_roles(self.user).exists())
def test_no_groups_created(self): self.assertFalse(get_user_roles(self.user).exists())
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)