def post(self):
     '''
     Processes user login
     '''
     self.response.headers['Content-Type'] = 'text/html'
     username = self.request.get('username')
     password = self.request.get('password')
     values = {'username': username, 'password': password}
     cookie = self.request.cookies.get('user_id')
     service = UserService()
     new_cookie = ''
     isError = False
     try:
         new_cookie = service.login(username=username,
                                    password=password,
                                    cookie=cookie)
     except InvalidCookieError as error:
         isError = True
         self.response.headers.add_header('Set-Cookie', 'user_id=; Path=/')
         self.redirect('/final/signup')
     except LoginError as error:
         isError = True
         messages = error.validation_messages
         logging.info("LoginError msgs: " + str(messages))
         values.update(messages)
         path = os.path.join(os.path.dirname(__file__),
                             '../templates/login.html')
         self.response.out.write(template.render(path, values))
     if not isError:
         self.response.headers.add_header('Set-Cookie',
                                          'user_id=%s; Path=/' % new_cookie)
         self.redirect('/final/welcome')
Exemplo n.º 2
0
def check_cookie(request_handler):
    try:
        cookie = request_handler.request.cookies.get("user_id")
        user_service = UserService()
        user_service.check_cookie(cookie)
    except InvalidCookieError as error:
        request_handler.response.headers.add_header('Set-Cookie',
                                                    'user_id=; Path=/')
        request_handler.redirect('/final/signup')
 def get(self):
     '''
     Handles get requests
     '''
     self.response.headers['Content-Type'] = 'text/html'
     #delete user from data store
     user_id = self.request.cookies.get("user_id")
     if user_id:
         user_id = user_id[0:user_id.find('|')]
         service = UserService()
         logging.info("User %s logged out? %s" %
                      (user_id, str(service.logout(user_id))))
     #clear cookie by setting it to an empty string
     self.response.headers.add_header('Set-Cookie', 'user_id=; Path=/')
     self.redirect('/final/signup')