Projet

Général

Profil

0001-use-explicit-in-lookup-25557.patch

Emmanuel Cazenave, 01 août 2018 17:38

Télécharger (2,48 ko)

Voir les différences:

Subject: [PATCH] use explicit in lookup (#25557)

 src/authentic2/manager/forms.py | 2 +-
 src/django_rbac/managers.py     | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)
src/authentic2/manager/forms.py
448 448
                # get possible OUs from this list
449 449
                related_query_name = self.queryset.model._meta.get_field('ou').related_query_name()
450 450
                objects_ou_qs = get_ou_model().objects.filter(
451
                    **{related_query_name: self.queryset}).distinct()
451
                    **{"%s__in" % related_query_name: self.queryset}).distinct()
452 452
                # to combine queryset with distinct, each queryset must have the distinct flag
453 453
                self.ou_qs = (self.ou_qs.distinct() | objects_ou_qs)
454 454

  
src/django_rbac/managers.py
106 106
        return self.filter(members=user).parents().distinct()
107 107

  
108 108
    def parents(self, include_self=True, annotate=False):
109
        qs = self.model.objects.filter(child_relation__child=self)
109
        qs = self.model.objects.filter(child_relation__child__in=self)
110 110
        if include_self:
111 111
            qs = self | qs
112 112
        qs = qs.distinct()
......
115 115
        return qs
116 116

  
117 117
    def children(self, include_self=True, annotate=False):
118
        qs = self.model.objects.filter(parent_relation__parent=self)
118
        qs = self.model.objects.filter(parent_relation__parent__in=self)
119 119
        if include_self:
120 120
            qs = self | qs
121 121
        qs = qs.distinct()
......
126 126
    def all_members(self):
127 127
        User = get_user_model()
128 128
        prefetch = Prefetch('roles', queryset=self, to_attr='direct')
129
        return (User.objects.filter(Q(roles=self) | Q(roles__parent_relation__parent=self))
129
        return (User.objects.filter(Q(roles__in=self) | Q(roles__parent_relation__parent__in=self))
130 130
                .distinct()
131 131
                .prefetch_related(prefetch))
132 132

  
133
-