def validate(self, data):
        token = data.get('token')

        # get token validation time
        password_reset_token_validation_time = get_password_reset_token_expiry_time(
        )

        # find token
        try:
            reset_password_token = _get_object_or_404(
                models.ResetPasswordToken, key=token)
        except (TypeError, ValueError, ValidationError, Http404,
                models.ResetPasswordToken.DoesNotExist):
            raise Http404(
                _("The OTP password entered is not valid. Please check and try again."
                  ))

        # check expiry date
        expiry_date = reset_password_token.created_at + timedelta(
            hours=password_reset_token_validation_time)

        if timezone.now() > expiry_date:
            # delete expired token
            reset_password_token.delete()
            raise Http404(_("The token has expired"))
        return data
Example #2
0
    def get_object(self):
        queryset = self.filter_queryset(self.get_queryset())

        lookup_url_kwarg = self.lookup_url_kwarg or self.lookup_field

        assert lookup_url_kwarg in self.kwargs, (
            constants.LOOKUP_ERROR %
            (self.__class__.__name__, lookup_url_kwarg))

        filter_kwargs = {self.lookup_field: self.kwargs[lookup_url_kwarg]}
        try:
            application = _get_object_or_404(queryset, **filter_kwargs)
            self._obj = application.proposer or application.quote.opportunity.lead.contact  # noqa
        except (TypeError, ValueError, ValidationError):
            self._obj = Http404

        if 'search' in self.request.query_params and self.request.method == 'GET':  # noqa
            contacts = Contact.objects.filter(
                phone_no=self.request.query_params.get('search')).exclude(
                    last_name='').exclude(
                        proposerdocument=None).order_by('modified')
            if not contacts.exists():
                raise mixins.NotFound('Application field not found.')
            if self._obj and contacts:
                if self._obj.id not in contacts:
                    self._obj = contacts.latest('modified')
        # May raise a permission denied
        self.check_object_permissions(self.request, self._obj)
        return self._obj
Example #3
0
def add_item(request, list_id):
    # get the list using the list_id
    list_obj = _get_object_or_404(_models.List, pk=list_id)
    if list_obj.user != request.user:
        return _defaults.page_not_found()

    # ensure that the list belongs to the auth user

    return _render(request, "pages/lists/add_item.html")
Example #4
0
    def delete(self, request, list_id):
        user = request.user
        list_obj = _get_object_or_404(self.model, pk=list_id)
        if list_obj.user != user:
            return _response.Response(status=_status.HTTP_404_NOT_FOUND)

        list_obj.delete()

        return _response.Response(status=_status.HTTP_204_NO_CONTENT)
Example #5
0
    def get(self, request, list_id):
        user = request.user
        list_obj = _get_object_or_404(self.model, pk=list_id)
        if list_obj.user != user:
            return _response.Response(status=_status.HTTP_404_NOT_FOUND)

        serializer = _ListSerializer(list_obj)

        return _response.Response(data=serializer.data)
Example #6
0
def get_object_or_404(queryset, *filter_args, **filter_kwargs):
    from django.shortcuts import get_object_or_404 as _get_object_or_404
    from django.core.exceptions import ValidationError
    from django.http import Http404

    try:
        return _get_object_or_404(queryset, *filter_args, **filter_kwargs)
    except (TypeError, ValueError, ValidationError):
        raise Http404
Example #7
0
def get_object_or_404(queryset, *filter_args, **filter_kwargs):
    """
    Same as Django's standard shortcut, but make sure to raise 404
    if the filter_kwargs don't match the required types.
    """
    try:
        return _get_object_or_404(queryset, *filter_args, **filter_kwargs)
    except (TypeError, ValueError):
        raise Http404
Example #8
0
def get_object_or_404(queryset, *filter_args, **filter_kwargs):
    """
    Same as Django's standard shortcut, but make sure to also raise 404
    if the filter_kwargs don't match the required types.
    """
    try:
        return _get_object_or_404(queryset, *filter_args, **filter_kwargs)
    except (TypeError, ValueError, ValidationError):
        raise Http404
Example #9
0
def get_object_or_404(queryset, *filter_args, **filter_kwargs):
    """
    Same as Django's standard shortcut, but make sure to also raise 404
    if the filter_kwargs don't match the required types.

    This function was copied from rest_framework.generics because of issue #36.
    """
    try:
        return _get_object_or_404(queryset, *filter_args, **filter_kwargs)
    except (TypeError, ValueError, ValidationError):
        raise Http404
Example #10
0
def get_object_or_error(queryset, user, *filter_args, **filter_kwargs):
    """
    Same as Django's standard shortcut, but make sure to raise 404
    (if the filter_kwargs don't match the required types), or 401
    (if the user is not logged in).

    """
    try:
        return _get_object_or_404(queryset, *filter_args, **filter_kwargs)
    except (Http404, TypeError, ValueError):
        if not user.is_authenticated:
            raise NotAuthenticated
        raise Http404
Example #11
0
    def put(self, request, list_id):
        user = request.user
        serializer = _ListSerializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        list_obj = _get_object_or_404(self.model, pk=list_id)
        list_obj.name = serializer.validated_data["name"]
        list_obj.is_completed = serializer.validated_data["is_completed"]
        list_obj.date_completed = serializer.validated_data["date_completed"]
        list_obj.save()

        serializer = _ListSerializer(instance=list_obj)

        return _response.Response(serializer.data)
def get_object_or_404_customed(queryset, *filter_args, **filter_kwargs):
    """
    Same as Django's standard shortcut, but make sure to also raise 404
    if the filter_kwargs don't match the required types.
    """
    try:
        return _get_object_or_404(queryset, *filter_args, **filter_kwargs)
    except (TypeError, ValueError, ValidationError):
        raise Http404
    except Http404 as e:
        # print(e)
        # print(type(e))
        raise CustomAPIException(
            status_code=status.HTTP_404_NOT_FOUND,
            detail=f"{queryset.__name__}'s object is not found!",
            object=queryset.__name__,
        )
Example #13
0
    def get_object(self, queryset=None, *args, **kwargs):

        user_pk     = self.kwargs.get('user_pk')
        bucket_slug = self.kwargs.get('bucket_slug')

        # https://github.com/tomchristie/django-rest-framework/blob/b1847412b57b4bc7db39739e0c7c0e8469d3bb48/rest_framework/generics.py#L260
        # Determine the base queryset to use.
        if queryset is None:
            queryset = self.filter_queryset(self.get_queryset())
        else:
            pass  # Deprecation warning

        filter_kwargs = {'user': user_pk, 'slug': bucket_slug}

        try: obj = _get_object_or_404(queryset, **filter_kwargs)
        except (TypeError, ValueError): return Http404

        self.check_object_permissions(self.request, obj)

        return obj
Example #14
0
    def get_object(self, queryset=None, *args, **kwargs):

        user_pk = self.kwargs.get('user_pk')
        bucket_slug = self.kwargs.get('bucket_slug')

        # https://github.com/tomchristie/django-rest-framework/blob/b1847412b57b4bc7db39739e0c7c0e8469d3bb48/rest_framework/generics.py#L260
        # Determine the base queryset to use.
        if queryset is None:
            queryset = self.filter_queryset(self.get_queryset())
        else:
            pass  # Deprecation warning

        filter_kwargs = {'user': user_pk, 'slug': bucket_slug}

        try:
            obj = _get_object_or_404(queryset, **filter_kwargs)
        except (TypeError, ValueError):
            return Http404

        self.check_object_permissions(self.request, obj)

        return obj
Example #15
0
    def get_object(self):
        queryset = self.filter_queryset(self.get_queryset())

        lookup_url_kwarg = self.lookup_url_kwarg or self.lookup_field
        assert lookup_url_kwarg in self.kwargs, (
            constants.LOOKUP_ERROR %
            (self.__class__.__name__, lookup_url_kwarg))
        filter_kwargs = {self.lookup_field: self.kwargs[lookup_url_kwarg]}
        try:
            self.application = _get_object_or_404(queryset, **filter_kwargs)
            self.application_type = self.application.application_type
            if not hasattr(self.application,
                           self.application.application_type):
                self._obj = Http404
            else:
                self._obj = getattr(self.application,
                                    self.application.application_type)
        except (TypeError, ValueError, ValidationError):
            self._obj = Http404
        # May raise a permission denied
        self.check_object_permissions(self.request, self._obj)
        return self._obj
Example #16
0
def get_object_or_404(queryset, *filter_args, **filter_kwargs):
    try:
        return _get_object_or_404(queryset, *filter_args, **filter_kwargs)
    except (TypeError, ValueError, ValidationError):
        raise NotFound
Example #17
0
def get_object_or_404(model, **kwargs):
    from django.shortcuts import get_object_or_404 as _get_object_or_404
    if 'published' not in kwargs:
        kwargs['published'] = True
    return _get_object_or_404(model, **kwargs)
Example #18
0
def get_model_for_kwarg(model, kwarg_field='object_id', model_field='pk', **kwargs):
    return _get_object_or_404(model._default_manager, 
            **{model_field: kwargs.get(kwarg_field, None)})
Example #19
0
def get_object_or_not_found(queryset, *args, **kwargs):
    try:
        return _get_object_or_404(queryset, *args, **kwargs)
    except (TypeError, ValueError, ValidationError, Http404):
        raise exceptions.NotFound(**kwargs)
Example #20
0
def get_object_or_None(Object, *args, **kwargs):
    try:
        return _get_object_or_404(Object, *args, **kwargs)
    except (Http404, MultipleObjectsReturned):
        return None
Example #21
0
def get_object_or_404(queryset, *filter_args, **filter_kwargs):
    try:
        return _get_object_or_404(queryset, *filter_args, **filter_kwargs)
    except (TypeError, ValueError, ValidationError, Http404):
        raise APIException(message='该对象不存在或者无访问权限')