From ba76c9431f118ec633b5f28fbcf50084a34d4572 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] [Backport] 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 f1535f14..ddfab0e7 100644 --- a/taiga/users/api.py +++ b/taiga/users/api.py @@ -47,6 +47,7 @@ from . import permissions from . import filters as user_filters from . import services 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): @@ -273,11 +274,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"])