def employee_reset_password(request, employee_email):
"""
This endpoint send an email to employee, with confirmation reset password url.
---
responseMessages:
- code: 404
message: Not found
- code: 406
message: Request not acceptable
"""
if request.method == 'GET':
employee = get_object_or_404(Employee, email=employee_email)
# Generate random uuid and save in employee
employee.generate_reset_password_code()
# Send email with reset password confirmation url
subject = config.EMPLOYEE_RESET_PASSWORD_CONFIRMATION_SUBJECT
current_site = Site.objects.get_current()
employee_reset_password_api = reverse('employees:employee_reset_password', args=[employee.email])
url = current_site.domain + employee_reset_password_api + employee.reset_password_code
message = config.EMPLOYEE_RESET_PASSWORD_CONFIRMATION_MESSAGE % (url)
try:
send_email = EmailMessage(subject, message, to=[employee.email])
send_email.send()
except Exception as e:
print(e)
content = {'detail': config.EMAIL_SERVICE_ERROR}
return Response(content, status=status.HTTP_406_NOT_ACCEPTABLE)
content = {'detail': 'Confirmation email sent.',
'email': employee.email,
'reset_password_code': employee.reset_password_code}
return Response(content, status=status.HTTP_200_OK)
评论列表
文章目录