def test_group(self): assign_perm("view_collection", self.group1, self.collection) assign_perm("edit_collection", self.group1, self.collection) user_perms, group_perms = get_user_group_perms(self.group1, self.collection) self.assertEqual(len(group_perms), 1) six.assertCountEqual(self, group_perms[0][2], ["view_collection", "edit_collection"]) self.assertEqual(len(user_perms), 0)
def test_user(self): assign_perm("view_collection", self.user, self.collection) assign_perm("edit_collection", self.user, self.collection) user_perms, group_perms = get_user_group_perms(self.user, self.collection) self.assertEqual(len(group_perms), 0) six.assertCountEqual(self, user_perms, ["view_collection", "edit_collection"])
def test_group(self): self.collection.set_permission(Permission.EDIT, self.group1) user_perms, group_perms = get_user_group_perms(self.group1, self.collection) self.assertEqual(len(group_perms), 1) self.assertCountEqual(group_perms[0][2], [Permission.VIEW, Permission.EDIT]) self.assertEqual(len(user_perms), 0)
def test_user(self): self.collection.set_permission(Permission.EDIT, self.contributor) user_perms, group_perms = get_user_group_perms(self.contributor, self.collection) self.assertEqual(len(group_perms), 0) self.assertCountEqual(user_perms, [Permission.VIEW, Permission.EDIT])
def test_user_in_group(self): self.group1.user_set.add(self.contributor) assign_perm("view_collection", self.group1, self.collection) assign_perm("edit_collection", self.group1, self.collection) user_perms, group_perms = get_user_group_perms(self.contributor, self.collection) self.assertEqual(len(group_perms), 1) six.assertCountEqual(self, group_perms[0][2], ["view_collection", "edit_collection"]) self.assertEqual(len(user_perms), 0) assign_perm("view_collection", self.contributor, self.collection) user_perms, group_perms = get_user_group_perms(self.contributor, self.collection) self.assertEqual(len(group_perms), 1) six.assertCountEqual(self, group_perms[0][2], ["view_collection", "edit_collection"]) self.assertEqual(len(user_perms), 1) six.assertCountEqual(self, user_perms, ["view_collection"])
def test_user(self): assign_perm("view_collection", self.contributor, self.collection) assign_perm("edit_collection", self.contributor, self.collection) user_perms, group_perms = get_user_group_perms(self.contributor, self.collection) self.assertEqual(len(group_perms), 0) six.assertCountEqual(self, user_perms, ["view_collection", "edit_collection"])
def test_user_in_group(self): self.group1.user_set.add(self.contributor) assign_perm("view_collection", self.group1, self.collection) assign_perm("edit_collection", self.group1, self.collection) user_perms, group_perms = get_user_group_perms(self.contributor, self.collection) self.assertEqual(len(group_perms), 1) self.assertCountEqual(group_perms[0][2], ["view_collection", "edit_collection"]) self.assertEqual(len(user_perms), 0) assign_perm("view_collection", self.contributor, self.collection) user_perms, group_perms = get_user_group_perms(self.contributor, self.collection) self.assertEqual(len(group_perms), 1) self.assertCountEqual(group_perms[0][2], ["view_collection", "edit_collection"]) self.assertEqual(len(user_perms), 1) self.assertCountEqual(user_perms, ["view_collection"])
def test_user_in_group(self): self.group1.user_set.add(self.contributor) self.collection.set_permission(Permission.EDIT, self.group1) user_perms, group_perms = get_user_group_perms(self.contributor, self.collection) self.assertEqual(len(group_perms), 1) self.assertCountEqual(group_perms[0][2], [Permission.VIEW, Permission.EDIT]) self.assertEqual(len(user_perms), 0) self.collection.set_permission(Permission.VIEW, self.contributor) user_perms, group_perms = get_user_group_perms(self.contributor, self.collection) self.assertEqual(len(group_perms), 1) self.assertCountEqual(group_perms[0][2], [Permission.VIEW, Permission.EDIT]) self.assertEqual(len(user_perms), 1) self.assertCountEqual(user_perms, [Permission.VIEW])
def test_user_in_multiple_groups(self): self.group1.user_set.add(self.user) self.group2.user_set.add(self.user) assign_perm("view_collection", self.group1, self.collection) assign_perm("edit_collection", self.group1, self.collection) assign_perm("view_collection", self.group2, self.collection) user_perms, group_perms = get_user_group_perms(self.user, self.collection) self.assertEqual(len(group_perms), 2) self.assertEqual(group_perms[0][0], self.group1.pk) six.assertCountEqual(self, group_perms[0][2], ["view_collection", "edit_collection"]) self.assertEqual(group_perms[1][0], self.group2.pk) six.assertCountEqual(self, group_perms[1][2], ["view_collection"]) self.assertEqual(len(user_perms), 0)
def test_user_in_multiple_groups(self): self.group1.user_set.add(self.contributor) self.group2.user_set.add(self.contributor) assign_perm("view_collection", self.group1, self.collection) assign_perm("edit_collection", self.group1, self.collection) assign_perm("view_collection", self.group2, self.collection) user_perms, group_perms = get_user_group_perms(self.contributor, self.collection) self.assertEqual(len(group_perms), 2) self.assertEqual(group_perms[0][0], self.group1.pk) six.assertCountEqual(self, group_perms[0][2], ["view_collection", "edit_collection"]) self.assertEqual(group_perms[1][0], self.group2.pk) six.assertCountEqual(self, group_perms[1][2], ["view_collection"]) self.assertEqual(len(user_perms), 0)
def test_user_in_multiple_groups(self): self.group1.user_set.add(self.contributor) self.group2.user_set.add(self.contributor) self.collection.set_permission(Permission.EDIT, self.group1) self.collection.set_permission(Permission.VIEW, self.group2) user_perms, group_perms = get_user_group_perms(self.contributor, self.collection) self.assertEqual(len(group_perms), 2) self.assertEqual(group_perms[0][0], self.group1.pk) self.assertCountEqual(group_perms[0][2], [Permission.VIEW, Permission.EDIT]) self.assertEqual(group_perms[1][0], self.group2.pk) self.assertCountEqual(group_perms[1][2], [Permission.VIEW]) self.assertEqual(len(user_perms), 0)
def _get_object_permissions(self, user, instance): def format_permissions(perms): return [perm.replace('_{}'.format(instance._meta.model_name), '') for perm in perms] if user.is_authenticated(): permissions_user, permissions_group = get_user_group_perms(user, instance) else: permissions_user, permissions_group = [], [] permissions_public = shortcuts.get_perms(AnonymousUser(), instance) return { 'user': format_permissions(permissions_user), 'group': format_permissions(permissions_group), 'public': format_permissions(permissions_public), }