From 28018bcc2d10eef5e237a49d09745f39da70ce24 Mon Sep 17 00:00:00 2001 From: Adarnof Date: Mon, 11 Jul 2016 15:22:09 +0000 Subject: [PATCH] disable member services on deletion or inactive addresses #502 --- celerytask/signals.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/celerytask/signals.py b/celerytask/signals.py index f2fcd60e..c50a119f 100644 --- a/celerytask/signals.py +++ b/celerytask/signals.py @@ -1,6 +1,8 @@ from django.db.models.signals import m2m_changed from django.db.models.signals import post_save +from django.db.models.signals import pre_save from django.db.models.signals import post_delete +from django.db.models.signals import pre_delete from django.dispatch import receiver from django.contrib.auth.models import User import logging @@ -60,3 +62,22 @@ def post_delete_authts(sender, instance, *args, **kwargs): logger.debug("Received post_delete signal from %s" % instance) trigger_all_ts_update() +@receiver(pre_delete, sender=User) +def pre_delete_user(sender, instance, *args, **kwargs): + logger.debug("Received pre_delete from %s" % instance) + disable_member(instance) + +@receiver(pre_save, sender=User) +def pre_save_user(sender, instance, *args, **kwargs): + logger.debug("Received pre_save from %s" % instance) + # check if user is being marked inactive + if not instance.pk: + # new model being created + return + try: + old_instance = User.objects.get(pk=instance.pk) + if old_instance.is_active and not instance.is_active: + logger.info("Disabling services for inactivation of user %s" % instance) + disable_member(instance) + except User.DoesNotExist: + pass