From 3be846ef47b720d34eaf57e63abad5b4dbbda8c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Thu, 10 Nov 2016 20:35:34 +0100 Subject: [PATCH] Throw a signal when users change their email adress --- taiga/users/api.py | 12 +++++++++++- taiga/users/signals.py | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/taiga/users/api.py b/taiga/users/api.py index b3e2e707..ef22c661 100644 --- a/taiga/users/api.py +++ b/taiga/users/api.py @@ -48,6 +48,7 @@ from . import filters as user_filters from . import services from . import utils as user_utils from .signals import user_cancel_account as user_cancel_account_signal +from .signals import user_change_email as user_change_email_signal class UsersViewSet(ModelCrudViewSet): permission_classes = (permissions.UserPermission,) @@ -279,11 +280,20 @@ class UsersViewSet(ModelCrudViewSet): "didn't use it before?")) self.check_permissions(request, "change_email", user) - user.email = user.new_email + + old_email = user.email + new_email = user.new_email + + user.email = new_email user.new_email = None user.email_token = None user.save(update_fields=["email", "new_email", "email_token"]) + user_change_email_signal.send(sender=user.__class__, + user=user, + old_email=old_email, + new_email=new_email) + return response.NoContent() @list_route(methods=["GET"]) diff --git a/taiga/users/signals.py b/taiga/users/signals.py index c3fc5c38..d812f5fc 100644 --- a/taiga/users/signals.py +++ b/taiga/users/signals.py @@ -19,4 +19,5 @@ import django.dispatch +user_change_email = django.dispatch.Signal(providing_args=["user", "old_email", "new_email"]) user_cancel_account = django.dispatch.Signal(providing_args=["user", "request_data"])