Example #1
0
    def __retrieve__(self, request):
        token, user = None, None

        if 'HTTP_X_MODIFIED_BY' in request.META:
            user = request.META['HTTP_X_MODIFIED_BY']
        if 'HTTP_X_TOKEN' in request.META:
            token = request.META['HTTP_X_TOKEN']
        else:
            return token

        if len(token) == 25:
            hasher = Hasher(salt=settings.SECRET_KEY)
            token = UUID(hasher.decode(token))

        token = Token.objects.filter(id=token,
                                     is_active=True,
                                     is_anonymous=False)
        if token:
            token = token[0]
            request.user = token.owner

            user = User.objects.filter(id=user)
            if token.has_perm('core.propagate_token') and user:
                request.user = user[0]

            if token.due and token.due < timezone.now():
                token.is_active = False
                token.save()

                token = None
        else:
            token = None

        return token
Example #2
0
def token_retrieve(request):
  token = None
  if 'X_TOKEN' in request.META:
    token = request.META['X_TOKEN']
  elif 'HTTP_X_TOKEN' in request.META:
    token = request.META['HTTP_X_TOKEN']

  if token is not None:
    if len(token) == 20:
      token = UUID(hexlify(b85decode(token.encode())).decode())

    if len(token) == 25:
      hasher = Hasher(salt=settings.SECRET_KEY)
      token = UUID(hasher.decode(token))

    try:
      token = Token.objects.get(id=token, is_active=True, is_anonymous=False)
      request.user = token.owner

      if token.due is not None and token.due < timezone.now():
        token.is_active = False
        token.save()

        token = None
    except Exception:
      token = None

  return token