0004-rbac-define-post_soft_delete-signal-and-its-handler-.patch
src/django_rbac/signal_handlers.py | ||
---|---|---|
19 | 19 |
sender.objects.update_transitive_closure() |
20 | 20 | |
21 | 21 | |
22 |
def role_parenting_post_soft_delete(sender, instance, **kwargs): |
|
23 |
'''Close the role parenting relation after instance soft-deletion''' |
|
24 |
if not instance.direct: |
|
25 |
return |
|
26 |
sender.objects.update_transitive_closure() |
|
27 | ||
28 | ||
22 | 29 |
def create_base_operations(app_config, verbosity=2, interactive=True, using=DEFAULT_DB_ALIAS, **kwargs): |
23 | 30 |
'''Create some basic operations, matching permissions from Django''' |
24 | 31 |
if not router.allow_migrate(using, models.Operation): |
src/django_rbac/signals.py | ||
---|---|---|
1 |
from django import dispatch |
|
2 | ||
3 |
from . import signal_handlers, utils |
|
4 | ||
5 |
# update role parenting transitive closure when role parenting is deleted |
|
6 |
post_soft_delete = dispatch.Signal(providing_args=['instance']) |
|
7 |
post_soft_delete.connect( |
|
8 |
signal_handlers.role_parenting_post_soft_delete, sender=utils.get_role_parenting_model() |
|
9 |
) |
|
0 |
- |