authentik.enterprise.lifecycle.signals

 1from django.db.models import Q
 2from django.db.models.signals import post_save, pre_delete
 3from django.dispatch import receiver
 4
 5from authentik.enterprise.lifecycle.models import LifecycleRule, ReviewState
 6
 7
 8@receiver(post_save, sender=LifecycleRule)
 9def post_rule_save(sender, instance: LifecycleRule, created: bool, **_):
10    from authentik.enterprise.lifecycle.tasks import apply_lifecycle_rule
11
12    apply_lifecycle_rule.send_with_options(
13        args=(instance.id,),
14        rel_obj=instance,
15    )
16
17
18@receiver(pre_delete, sender=LifecycleRule)
19def pre_rule_delete(sender, instance: LifecycleRule, **_):
20    instance.lifecycleiteration_set.filter(
21        Q(state=ReviewState.PENDING) | Q(state=ReviewState.OVERDUE)
22    ).update(state=ReviewState.CANCELED)
@receiver(post_save, sender=LifecycleRule)
def post_rule_save( sender, instance: authentik.enterprise.lifecycle.models.LifecycleRule, created: bool, **_):
 9@receiver(post_save, sender=LifecycleRule)
10def post_rule_save(sender, instance: LifecycleRule, created: bool, **_):
11    from authentik.enterprise.lifecycle.tasks import apply_lifecycle_rule
12
13    apply_lifecycle_rule.send_with_options(
14        args=(instance.id,),
15        rel_obj=instance,
16    )
@receiver(pre_delete, sender=LifecycleRule)
def pre_rule_delete( sender, instance: authentik.enterprise.lifecycle.models.LifecycleRule, **_):
19@receiver(pre_delete, sender=LifecycleRule)
20def pre_rule_delete(sender, instance: LifecycleRule, **_):
21    instance.lifecycleiteration_set.filter(
22        Q(state=ReviewState.PENDING) | Q(state=ReviewState.OVERDUE)
23    ).update(state=ReviewState.CANCELED)