Throw a signal when users change their email adress

remotes/origin/issue/4795/notification_even_they_are_disabled
David Barragán Merino 2016-11-10 20:35:34 +01:00 committed by Alejandro Alonso
parent c7d2e0c174
commit 3be846ef47
2 changed files with 12 additions and 1 deletions

View File

@ -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"])

View File

@ -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"])