Projet

Général

Profil

0004-rbac-define-post_soft_delete-signal-and-its-handler-.patch

Paul Marillonnet, 15 octobre 2021 10:42

Télécharger (1,72 ko)

Voir les différences:

Subject: [PATCH 4/8] rbac: define post_soft_delete signal and its handler
 (#57500)

 src/django_rbac/signal_handlers.py | 7 +++++++
 src/django_rbac/signals.py         | 9 +++++++++
 2 files changed, 16 insertions(+)
 create mode 100644 src/django_rbac/signals.py
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
-