def put(self, request, *args, **kwargs): serializer = PasswordResetSerializer(data=request.data) serializer.is_valid(raise_exception=True) try: user = USER_MODEL.objects.get( email__iexact=serializer.validated_data['email']) context = { 'email': user.email, 'site': tenant_url(), 'site_name': tenant_url(), 'uid': int_to_base36(user.pk), 'user': user, 'token': default_token_generator.make_token(user), } with TenantLanguage(user.primary_language): subject = loader.render_to_string( 'bb_accounts/password_reset_subject.txt', context) # Email subject *must not* contain newlines subject = ''.join(subject.splitlines()) send_mail(template_name='bb_accounts/password_reset_email', to=user, subject=subject, **context) except USER_MODEL.DoesNotExist: pass return response.Response({}, status=status.HTTP_200_OK)
def put(self, request, *args, **kwargs): serializer = PasswordResetSerializer(data=request.data) serializer.is_valid(raise_exception=True) try: user = USER_MODEL.objects.get(email__iexact=serializer.validated_data['email']) context = { 'email': user.email, 'site': tenant_url(), 'site_name': tenant_url(), 'uid': int_to_base36(user.pk), 'user': user, 'token': default_token_generator.make_token(user), } with TenantLanguage(user.primary_language): subject = loader.render_to_string('bb_accounts/password_reset_subject.txt', context) # Email subject *must not* contain newlines subject = ''.join(subject.splitlines()) send_mail( template_name='bb_accounts/password_reset_email', to=user, subject=subject, **context ) except USER_MODEL.DoesNotExist: pass return response.Response(status=status.HTTP_200_OK)
def put(self, request, *args, **kwargs): password_reset_form = PasswordResetForm() serializer = PasswordResetSerializer( password_reset_form=password_reset_form, data=request.DATA) if serializer.is_valid(): opts = { # Always use https 'use_https': True, 'from_email': settings.DEFAULT_FROM_EMAIL, 'request': request, } # TODO: When Django Password Reset form uses user.email_user() # this can be enabled and the self.save() can # be removed. # password_reset_form.save(**opts) # Sends the email self.save(password_reset_form, **opts) # Sends the email return response.Response(status=status.HTTP_200_OK) return response.Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)