0005-rbac-soft_delete-requires-transitive-closure-update-.patch
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 |
- |