Send confirmation to new email
This commit is contained in:
parent
28471686be
commit
be48bff5ae
|
|
@ -158,19 +158,20 @@ class User(AbstractUser):
|
||||||
self.is_active = True
|
self.is_active = True
|
||||||
self.save()
|
self.save()
|
||||||
|
|
||||||
def get_body_email_message(self, subject: str, message: str):
|
def get_body_email_message(self, subject: str, message: str, emails=None):
|
||||||
"""Prepare the body of the email message"""
|
"""Prepare the body of the email message"""
|
||||||
return {
|
return {
|
||||||
'subject': subject,
|
'subject': subject,
|
||||||
'message': str(message),
|
'message': str(message),
|
||||||
'from_email': settings.EMAIL_HOST_USER,
|
'from_email': settings.EMAIL_HOST_USER,
|
||||||
'recipient_list': [self.email, ]
|
'recipient_list': emails if emails else [self.email, ]
|
||||||
}
|
}
|
||||||
|
|
||||||
def send_email(self, subject: str, message: str):
|
def send_email(self, subject: str, message: str, emails=None):
|
||||||
"""Send an email to reset user password"""
|
"""Send an email to reset user password"""
|
||||||
send_mail(**self.get_body_email_message(subject=subject,
|
send_mail(**self.get_body_email_message(subject=subject,
|
||||||
message=message))
|
message=message,
|
||||||
|
emails=emails))
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def confirm_email_token(self):
|
def confirm_email_token(self):
|
||||||
|
|
|
||||||
|
|
@ -72,11 +72,13 @@ class UserSerializer(serializers.ModelSerializer):
|
||||||
if settings.USE_CELERY:
|
if settings.USE_CELERY:
|
||||||
tasks.change_email_address.delay(
|
tasks.change_email_address.delay(
|
||||||
user_id=instance.id,
|
user_id=instance.id,
|
||||||
country_code=self.context.get('request').country_code)
|
country_code=self.context.get('request').country_code,
|
||||||
|
emails=[validated_data['email'],])
|
||||||
else:
|
else:
|
||||||
tasks.change_email_address(
|
tasks.change_email_address(
|
||||||
user_id=instance.id,
|
user_id=instance.id,
|
||||||
country_code=self.context.get('request').country_code)
|
country_code=self.context.get('request').country_code,
|
||||||
|
emails=[validated_data['email'],])
|
||||||
return instance
|
return instance
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,11 +10,12 @@ from account.models import User
|
||||||
logging.basicConfig(format='[%(levelname)s] %(message)s', level=logging.INFO)
|
logging.basicConfig(format='[%(levelname)s] %(message)s', level=logging.INFO)
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
def send_email(user_id: int, subject: str, message_prop: str, country_code: str):
|
def send_email(user_id: int, subject: str, message_prop: str, country_code: str, emails=None):
|
||||||
try:
|
try:
|
||||||
user = User.objects.get(id=user_id)
|
user = User.objects.get(id=user_id)
|
||||||
user.send_email(subject=_(subject),
|
user.send_email(subject=_(subject),
|
||||||
message=getattr(user, message_prop, lambda _: '')(country_code))
|
message=getattr(user, message_prop, lambda _: '')(country_code),
|
||||||
|
emails=emails)
|
||||||
except:
|
except:
|
||||||
cur_frame = inspect.currentframe()
|
cur_frame = inspect.currentframe()
|
||||||
cal_frame = inspect.getouterframes(cur_frame, 2)
|
cal_frame = inspect.getouterframes(cur_frame, 2)
|
||||||
|
|
@ -35,9 +36,9 @@ def confirm_new_email_address(user_id, country_code):
|
||||||
|
|
||||||
|
|
||||||
@shared_task
|
@shared_task
|
||||||
def change_email_address(user_id, country_code):
|
def change_email_address(user_id, country_code, emails=None):
|
||||||
"""Send email to user new email."""
|
"""Send email to user new email."""
|
||||||
send_email(user_id, 'Validate new email address', 'change_email_template', country_code)
|
send_email(user_id, 'Validate new email address', 'change_email_template', country_code, emails)
|
||||||
|
|
||||||
|
|
||||||
@shared_task
|
@shared_task
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user