def test_object_list_filter(self): group_ctype = ContentType.objects.get_for_model(self.TestGroup) obj_list = ((group_ctype.id, self.group.id), (group_ctype.id, self.group2.id)) self.assertEquals( len( filter_object_id_list( obj_list, self.user2.id, self.TestGroup.get_view_permission().id)), 0) self.user2.permissions.add(self.TestGroup.get_view_permission(), self.group2) self.assertEquals( filter_object_id_list(obj_list, self.user2.id, self.TestGroup.get_view_permission().id), [(group_ctype.id, self.group2.id)])
def post_process_results(self, results): to_cache = super(RestrictedSearchQuerySet, self).post_process_results(results) view_perm = get_view_permission() view_perm_name = "{0}.{1}".format(view_perm.content_type.app_label, view_perm.codename) if self.user.has_perm(view_perm_name): return to_cache check_ids = [] for result in to_cache: if result.restriction_id and result.restriction_content_type_id: check_ids.append((result.restriction_content_type_id, result.restriction_id)) if self.user and check_ids: result_ids = set( filter_object_id_list(check_ids, self.user.id, get_view_permission().id)) else: result_ids = set() def check_id(result): in_ids = (result.restriction_content_type_id, result.restriction_id) in result_ids return in_ids or result.restriction_id is None return [result for result in to_cache if check_id(result)]
def post_process_results(self, results): to_cache = super(RestrictedSearchQuerySet, self).post_process_results(results) view_perm = get_view_permission() view_perm_name = "{0}.{1}".format(view_perm.content_type.app_label, view_perm.codename) if self.user.has_perm(view_perm_name): return to_cache check_ids = [] for result in to_cache: if result.restriction_id and result.restriction_content_type_id: check_ids.append((result.restriction_content_type_id, result.restriction_id)) if self.user and check_ids: result_ids = set( filter_object_id_list(check_ids, self.user.id, get_view_permission().id) ) else: result_ids = set() def check_id(result): in_ids = (result.restriction_content_type_id, result.restriction_id) in result_ids return in_ids or result.restriction_id is None return [result for result in to_cache if check_id(result)]
def test_object_list_filter(self): group_ctype = ContentType.objects.get_for_model(self.TestGroup) obj_list = ((group_ctype.id, self.group.id), (group_ctype.id, self.group2.id)) self.assertEquals( len( filter_object_id_list( obj_list, self.user2.id, self.TestGroup.get_view_permission().id)), 0) self.user2.permissions.add(self.TestGroup.get_view_permission(), TEST_REASON, self.group2, responsible=self.responsible_user) self.assertEquals( filter_object_id_list(obj_list, self.user2.id, self.TestGroup.get_view_permission().id), [(group_ctype.id, self.group2.id)]) self.assertEqual(self.HistoryOwnerToPermission.objects.count(), 1)
def test_object_list_filter(self): group_ctype = ContentType.objects.get_for_model(self.TestGroup) obj_list = ( (group_ctype.id, self.group.id), (group_ctype.id, self.group2.id) ) self.assertEquals( len(filter_object_id_list( obj_list, self.user2.id, self.TestGroup.get_view_permission().id )), 0 ) self.user2.permissions.add( self.TestGroup.get_view_permission(), self.group2 ) self.assertEquals( filter_object_id_list( obj_list, self.user2.id, self.TestGroup.get_view_permission().id ), [(group_ctype.id, self.group2.id)] )