def send_repair_email(request): """API функция по отправке эл. писем для восстановления забытого пароля. """ resp_dict = dict() resp_dict['errors'] = '' # в демо режиме запрос не обрабытываем if settings.DEMO: resp_dict['errors'] = 'In demo mode repair pass not work!' return JsonResponse(resp_dict) form = SendMail(request.POST) if form.is_valid(): data_in_post = form.cleaned_data email = data_in_post.get('email', '') obj = AnconUser.objects.filter(email=email) if not obj: resp_dict['errors'] = _('Email was not found.') return JsonResponse(resp_dict) if len(obj) > 1: resp_dict['errors'] = _('Email should not be repeated for different users.') return JsonResponse(resp_dict) title = _('Forgotten password recovery') # Генерируем случайную буквенно цифорвую последовательность chars = 'ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' secret_key = get_random_string(64, chars) # сохраняем ключ в объекте пользователя user_obj = AnconUser.objects.get(email=email) user_obj.secret_key = secret_key user_obj.save() domain = request.get_host() text = """ Для восстановления забытого пароля перейдите по ссылке http://%s/manage_users/recover_password/%s """ text = text % (domain, secret_key, ) try: send_email(reciver=email, title=title, text=text) except Exception as e: resp_dict['errors'] =str(e) else: resp_dict['text'] = _('Mail successfully sended!') else: # если форма содержит ошибки, то сообщаем о них пользователю. resp_dict['errors'] = form.errors.as_text() return JsonResponse(resp_dict)
def send_test_email(request): """ """ resp_dict = dict() form = SendTestMail(request.POST) if form.is_valid(): data_in_post = form.cleaned_data email = data_in_post.get('email', '') text = data_in_post.get('text', '') resp_dict['errors'] = '' try: send_email(reciver=email, title=text, text=text) except Exception as e: resp_dict['errors'] =str(e) else: resp_dict['text'] = _('Mail successfully sended!') else: # если форма содержит ошибки, то сообщаем о них пользователю. error_message = dict([(key, [error for error in value]) for key, value in form.errors.items()]) resp_dict['errors'] = error_message return JsonResponse(resp_dict)