Exemplo n.º 1
0
    def create(self, request, *args, **kwargs):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)

        token = serializer.validated_data["token"]
        password = serializer.validated_data["password"]

        password_validation.validate_password(password)
        email = PasswordReset.validate_reset_token(token)

        try:
            user = User.objects.get(email__iexact=email)
        except User.DoesNotExist:
            raise ValidationError(
                {"email": "User with that email does not exist"})

        user.set_password(password)
        user.save()
        return Response(DetailedUserSerializer(user).data,
                        status=status.HTTP_200_OK)
Exemplo n.º 2
0
    def create(self, request, *args, **kwargs):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        email = serializer.validated_data["email"]
        try:
            User.objects.get(email__iexact=email)
        except User.DoesNotExist:
            raise ValidationError(
                {"email": "User with that email does not exist"})
        token = PasswordReset.generate_reset_token(email)
        send_email.delay(
            to_email=email,
            context={"token": token},
            subject="Nullstill ditt passord på abakus.no",
            plain_template="users/email/reset_password.txt",
            html_template="users/email/reset_password.html",
            from_email=None,
        )

        return Response(status=status.HTTP_202_ACCEPTED)