Пример #1
0
def activate_account(request, user_id, token):
    User = auth.get_user_model()

    try:
        user = User.objects.get(pk=user_id)
    except User.DoesNotExist:
        message = _("Activation link is invalid. Please try again.")
        return Response({'detail': message}, status=status.HTTP_400_BAD_REQUEST)

    if not is_activation_token_valid(user, token):
        message = _("Activation link is invalid. Please try again.")
        return Response({'detail': message},
                        status=status.HTTP_400_BAD_REQUEST)

    form = ResendActivationForm()
    try:
        form.confirm_user_not_banned(user)
    except ValidationError:
        message = _("Activation link has expired. Please request new one.")
        return Response({'detail': message},
                        status=status.HTTP_400_BAD_REQUEST)

    try:
        form.confirm_can_be_activated(user)
    except ValidationError as e:
        return Response({'detail': e.messages[0]},
                        status=status.HTTP_400_BAD_REQUEST)

    user.requires_activation = False
    user.save(update_fields=['requires_activation'])

    message = _("%(user)s, your account has been activated.")
    return Response({
            'detail': message % {'user': user.username}
        })
Пример #2
0
def activate_account(request, user_id, token):
    User = auth.get_user_model()

    try:
        user = User.objects.get(pk=user_id)
    except User.DoesNotExist:
        message = _("Activation link is invalid. Please try again.")
        return Response({'detail': message}, status=status.HTTP_400_BAD_REQUEST)

    if not is_activation_token_valid(user, token):
        message = _("Activation link is invalid. Please try again.")
        return Response({'detail': message},
                        status=status.HTTP_400_BAD_REQUEST)

    form = ResendActivationForm()
    try:
        form.confirm_user_not_banned(user)
    except ValidationError:
        message = _("Activation link has expired. Please request new one.")
        return Response({'detail': message},
                        status=status.HTTP_400_BAD_REQUEST)

    try:
        form.confirm_can_be_activated(user)
    except ValidationError as e:
        return Response({'detail': e.messages[0]},
                        status=status.HTTP_400_BAD_REQUEST)

    user.requires_activation = False
    user.save(update_fields=['requires_activation'])

    message = _("%(user)s, your account has been activated.")
    return Response({
            'detail': message % {'user': user.username}
        })
Пример #3
0
    def decorator(request, *args, **kwargs):
        if 'user_id' in kwargs:
            User = get_user_model()
            user = get_object_or_404(User.objects, pk=kwargs.pop('user_id'))
            kwargs['user'] = user

            if not is_activation_token_valid(user, kwargs['token']):
                message = _("Your link is invalid. Please try again.")
                return Response({'detail': message},
                                status=status.HTTP_404_NOT_FOUND)

            form = ResendActivationForm()
            try:
                form.confirm_user_not_banned(user)
            except ValidationError:
                message = _("Your link has expired. Please request new one.")
                return Response({'detail': message},
                                status=status.HTTP_404_NOT_FOUND)

            try:
                form.confirm_can_be_activated(user)
            except ValidationError as e:
                return Response({'detail': e.messages[0]},
                                status=status.HTTP_404_NOT_FOUND)

        return f(request, *args, **kwargs)
Пример #4
0
    def decorator(request, *args, **kwargs):
        if 'user_id' in kwargs:
            User = get_user_model()
            user = get_object_or_404(User.objects, pk=kwargs.pop('user_id'))
            kwargs['user'] = user

            if not is_activation_token_valid(user, kwargs['token']):
                message = _("Your link is invalid. Please try again.")
                return Response({'detail': message},
                                status=status.HTTP_404_NOT_FOUND)

            form = ResendActivationForm()
            try:
                form.confirm_user_not_banned(user)
            except ValidationError:
                message = _("Your link has expired. Please request new one.")
                return Response({'detail': message},
                                status=status.HTTP_404_NOT_FOUND)

            try:
                form.confirm_can_be_activated(user)
            except ValidationError as e:
                return Response({'detail': e.messages[0]},
                                status=status.HTTP_404_NOT_FOUND)

        return f(request, *args, **kwargs)