예제 #1
0
    def validate_uid(self, value):
        try:
            uid = utils.decode_uid(value)
            self.user = User.objects.get(pk=uid)
        except (User.DoesNotExist, ValueError, TypeError, OverflowError):
            self.fail('invalid_uid')

        return value
예제 #2
0
    def validate_uid(self, value):
        try:
            uid = utils.decode_uid(value)
            self.user = User.objects.get(pk=uid)
        except (User.DoesNotExist, ValueError, TypeError, OverflowError):
            self.fail('invalid_uid')

        return value
예제 #3
0
 def validate_uid(self, value):
     try:
         uid = utils.decode_uid(value)
         self.user = User.objects.get(pk=uid)
     except (User.DoesNotExist, ValueError, TypeError,
             OverflowError) as error:
         raise serializers.ValidationError(
             self.error_messages['invalid_uid'])
     return value
예제 #4
0
def get_user_from_activation_token(uid, token) -> Union[User, None]:
    try:
        uid = decode_uid(uid)
    except DjangoUnicodeDecodeError:
        return None
    try:
        user = User.objects.get(pk=uid)
    except (User.DoesNotExist, ValueError):
        return None
    if not default_token_generator.check_token(user, token):
        return None
    return user
예제 #5
0
파일: views.py 프로젝트: Andross78/Workshop
 def get(self, request, uid, token):
     from django.contrib.auth.tokens import default_token_generator
     from djoser.utils import decode_uid
     uid = int(decode_uid(uid))
     user = User.objects.get(id=uid)
     if default_token_generator.check_token(user, token):
         user.is_active = True
         user.save()
         #login(self.request, user)
         success_url = reverse_lazy('profile')
     else:
         success_url = revese_lazy('login_signin')
     return HttpResponseRedirect(success_url)
    def mutate(self, info, token, uid):

        try:
            uid = decode_uid(uid)
            user = UserModel.objects.get(pk=uid)
            if not default_token_generator.check_token(user, token):
                return Activate(success=False, errors=['stale token'])
                pass
            user.is_active = True
            user.save()
            return Activate(success=True, errors=None)

        except Exception:
            return Activate(success=False, errors=['unknown user'])
예제 #7
0
    def mutate_and_get_payload(cls, input, context, info):
        token = input.get('token')
        uid = input.get('uid')

        try:
            uid = decode_uid(uid)
            user = UserModel.objects.get(pk=uid)
            if not default_token_generator.check_token(user, token):
                return Activate(success=False, errors=['stale token'])
                pass
            return Activate(success=True, errors=None)

        except:
            return Activate(success=False, errors=['unknown user'])
예제 #8
0
    def mutate_and_get_payload(cls, input, context, info):
        token = input.get('token')
        uid = input.get('uid')

        try:
            uid = decode_uid(uid)
            user = UserModel.objects.get(pk=uid)
            if not default_token_generator.check_token(user, token):
                return Activate(success=False, errors=['stale token'])
                pass
            user.is_active = True
            user.save()
            return Activate(success=True, errors=None)

        except:
            return Activate(success=False, errors=['unknown user'])
예제 #9
0
    def validate(self, attrs):
        validated_data = super().validate(attrs)

        # uid validation have to be here, because validate_<field_name>
        # doesn't work with modelserializer
        try:
            uid = utils.decode_uid(self.initial_data.get("uid", ""))
            self.user = User.objects.get(pk=uid)
        except (User.DoesNotExist, ValueError, TypeError, OverflowError):
            key_error = "invalid_uid"
            raise ValidationError({"uid": [self.error_messages[key_error]]},
                                  code=key_error)

        is_token_valid = self.context["view"].token_generator.check_token(
            self.user, self.initial_data.get("token", ""))
        if is_token_valid:
            return validated_data
        else:
            key_error = "invalid_token"
            raise ValidationError({"token": [self.error_messages[key_error]]},
                                  code=key_error)
예제 #10
0
def token_validate(uid: str, token: str):
    """
    Validate URL for restarting user password
    - Decode UID to user ID
    - Get user instance by user_id
    - Validate token
    Return: - False (if token is invalid)
            - user instance (if token is valid)
    """

    user_id = utils.decode_uid(uid)

    try:
        user = get_object_or_404(User, id=user_id)
    except ValueError:
        # If inputted wrong UID which is not int return response 'Invalid token'
        return False

    token_validate = default_token_generator.check_token(user, token)

    if not token_validate:
        return False
    return user
예제 #11
0
def activate_view(request, uid, token):
    # perform POST API request to activate user through API layer

    payload = {'uid': uid, 'token': token}

    pk = utils.decode_uid(uid)
    print(pk)
    try:
        target = User.objects.get(pk=pk)
        print(target)
        target.is_email_verified = True
        target.save()
        message = 'Your account has been activated, thanks for using Hillotask.'
    except:
        message = 'There is something wrong with activating your account. Please visit hillotask.com/support for additional help.'

    # if all is good
    # if resp.status_code == 200:
    #     message = 'Your account has been activated!'
    # else:
    #     message = 'There is something wrong with activating your account!'

    return render(request, 'auth/activate.html', {'message': message})
예제 #12
0
def activate_view(request, uid, token):
    # perform POST API request to activate user through API layer

    payload = {'uid': uid, 'token': token}

    pk = utils.decode_uid(uid)
    print(pk)
    try:
        target = User.objects.get(pk=pk)
        print(target)
        target.is_email_verified = True
        target.save()
        message = 'Your account has been activated, thanks for using Hillotask.'
    except:
        message = 'There is something wrong with activating your account. Please visit hillotask.com/support for additional help.'

    # if all is good
    # if resp.status_code == 200:
    #     message = 'Your account has been activated!'
    # else:
    #     message = 'There is something wrong with activating your account!'

    return render(request, 'auth/activate.html', {'message': message})
예제 #13
0
    def get(self, request: HttpRequest, *args,
            **kwargs: dict[str, str]) -> HttpResponse:
        try:
            uid = utils.decode_uid(kwargs['uid'])
            user = User.objects.get(pk=uid)
        except (User.DoesNotExist, ValueError, TypeError, OverflowError):
            return redirect('main:index')

        if not default_token_generator.check_token(user, kwargs['token']):
            return redirect('main:index')

        user.is_active = True
        user.is_verified = True
        user.verify_email_sent = timezone.now()
        user.save(update_fields=('is_active', 'is_verified'))

        if request.user.is_authenticated:
            messages.success(
                request,
                '¡Se ha verificado tu dirección de e-mail correctamente!',
            )
            return redirect('profile')

        return redirect('login')
예제 #14
0
 def _get_user(self, uid):
     try:
         pk = utils.decode_uid(uid)
         return User.objects.get(pk=pk)
     except (ValueError, User.DoesNotExist):
         return None
예제 #15
0
 def _get_user(self, uid):
     try:
         pk = utils.decode_uid(uid)
         return User.objects.get(pk=pk)
     except (ValueError, User.DoesNotExist):
         return None