예제 #1
0
    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)
예제 #2
0
    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)
예제 #3
0
    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)