Пример #1
0
 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)])
Пример #2
0
    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)]
Пример #3
0
    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)]
Пример #4
0
 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)
Пример #5
0
 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)]
     )