Projet

Général

Profil

0005-rbac-soft_delete-requires-transitive-closure-update-.patch

Paul Marillonnet, 15 octobre 2021 10:42

Télécharger (1,2 ko)

Voir les différences:

Subject: [PATCH 5/8] rbac: soft_delete requires transitive closure update
 (#57500)

 src/django_rbac/managers.py | 5 +++++
 1 file changed, 5 insertions(+)
src/django_rbac/managers.py
179 179
                rp.save(update_fields=['created', 'deleted'])
180 180

  
181 181
    def soft_delete(self, parent, child, direct=None):
182
        from . import signals
183

  
182 184
        qs = self.filter(parent=parent, child=child, deleted__isnull=True)
183 185
        if direct is not None:
184 186
            qs = qs.filter(direct=direct)
187
        any_direct_rp = qs.filter(direct=True).first()
185 188
        qs.update(deleted=datetime.datetime.now())
189
        if any_direct_rp:
190
            signals.post_soft_delete.send(sender=any_direct_rp.__class__, instance=any_direct_rp)
186 191

  
187 192
    def update_transitive_closure(self):
188 193
        """Recompute the transitive closure of the inheritance relation
189
-