示例#1
0
    def post(self, request, *args, **kwargs):
        ret = super(LoggedLoginView, self).post(request, *args, **kwargs)
        current_user = getattr(request, 'user', None)
        if request.user.is_authenticated:
            logger.info(
                smart_text(u"User {} logged in from {}".format(
                    self.request.user.username,
                    request.META.get('REMOTE_ADDR', None))))
            ret.set_cookie('userLoggedIn', 'true')
            current_user = UserSerializer(self.request.user)
            current_user = smart_text(JSONRenderer().render(current_user.data))
            current_user = urllib.parse.quote('%s' % current_user, '')
            ret.set_cookie('current_user',
                           current_user,
                           secure=settings.SESSION_COOKIE_SECURE or None)

            return ret
        else:
            if 'username' in self.request.POST:
                logger.warn(
                    smart_text(u"Login failed for user {} from {}".format(
                        self.request.POST.get('username'),
                        request.META.get('REMOTE_ADDR', None))))
            ret.status_code = 401
            return ret
示例#2
0
 def dispatch(self, request, *args, **kwargs):
     response = super(CompleteView, self).dispatch(request, *args, **kwargs)
     if self.request.user and self.request.user.is_authenticated():
         request_hash = AuthToken.get_request_hash(self.request)
         try:
             token = AuthToken.objects.filter(user=request.user,
                                              request_hash=request_hash,
                                              reason='',
                                              expires__gt=now())[0]
             token.refresh()
             logger.info(
                 smart_text(u"User {} logged in".format(
                     self.request.user.username)))
         except IndexError:
             token = AuthToken.objects.create(user=request.user,
                                              request_hash=request_hash)
             logger.info(
                 smart_text(u"User {} logged in".format(
                     self.request.user.username)))
         request.session['auth_token_key'] = token.key
         token_key = urllib.quote('"%s"' % token.key)
         response.set_cookie('token', token_key)
         token_expires = token.expires.astimezone(utc).strftime(
             '%Y-%m-%dT%H:%M:%S')
         token_expires = '%s.%03dZ' % (token_expires,
                                       token.expires.microsecond / 1000)
         token_expires = urllib.quote('"%s"' % token_expires)
         response.set_cookie('token_expires', token_expires)
         response.set_cookie('userLoggedIn', 'true')
         current_user = UserSerializer(self.request.user)
         current_user = JSONRenderer().render(current_user.data)
         current_user = urllib.quote('%s' % current_user, '')
         response.set_cookie('current_user', current_user)
     return response
示例#3
0
 def dispatch(self, request, *args, **kwargs):
     response = super(CompleteView, self).dispatch(request, *args, **kwargs)
     if self.request.user and self.request.user.is_authenticated:
         logger.info(smart_text(u"User {} logged in".format(self.request.user.username)))
         response.set_cookie('userLoggedIn', 'true')
         current_user = UserSerializer(self.request.user)
         current_user = smart_text(JSONRenderer().render(current_user.data))
         current_user = urllib.parse.quote('%s' % current_user, '')
         response.set_cookie('current_user', current_user, secure=settings.SESSION_COOKIE_SECURE or None)
     return response
示例#4
0
    def post(self, request, *args, **kwargs):
        ret = super(LoggedLoginView, self).post(request, *args, **kwargs)
        current_user = getattr(request, 'user', None)
        if request.user.is_authenticated:
            logger.info(
                smart_text(u"User {} logged in.".format(
                    self.request.user.username)))
            ret.set_cookie('userLoggedIn', 'true')
            current_user = UserSerializer(self.request.user)
            current_user = JSONRenderer().render(current_user.data)
            current_user = urllib.quote('%s' % current_user, '')
            ret.set_cookie('current_user', current_user)

            return ret
        else:
            ret.status_code = 401
            return ret