Merge pull request #875 from taigaio/us/4640/mailchimp-to-sendinblue
Throw a signal when users change their email adressremotes/origin/issue/4795/notification_even_they_are_disabled
commit
f18c0e2636
|
@ -48,6 +48,7 @@ from . import filters as user_filters
|
||||||
from . import services
|
from . import services
|
||||||
from . import utils as user_utils
|
from . import utils as user_utils
|
||||||
from .signals import user_cancel_account as user_cancel_account_signal
|
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):
|
class UsersViewSet(ModelCrudViewSet):
|
||||||
permission_classes = (permissions.UserPermission,)
|
permission_classes = (permissions.UserPermission,)
|
||||||
|
@ -279,11 +280,20 @@ class UsersViewSet(ModelCrudViewSet):
|
||||||
"didn't use it before?"))
|
"didn't use it before?"))
|
||||||
|
|
||||||
self.check_permissions(request, "change_email", user)
|
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.new_email = None
|
||||||
user.email_token = None
|
user.email_token = None
|
||||||
user.save(update_fields=["email", "new_email", "email_token"])
|
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()
|
return response.NoContent()
|
||||||
|
|
||||||
@list_route(methods=["GET"])
|
@list_route(methods=["GET"])
|
||||||
|
|
|
@ -19,4 +19,5 @@
|
||||||
import django.dispatch
|
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"])
|
user_cancel_account = django.dispatch.Signal(providing_args=["user", "request_data"])
|
||||||
|
|
Loading…
Reference in New Issue