return orm.User from get_current_user

rather than name.

removes need for `get_user` wrapper
This commit is contained in:
MinRK
2014-09-13 17:19:34 -07:00
parent 91a412c095
commit 42f040c6a1
2 changed files with 14 additions and 18 deletions

View File

@@ -67,7 +67,7 @@ class BaseHandler(RequestHandler):
if orm_token is None: if orm_token is None:
return None return None
else: else:
return orm_token.user.name return orm_token.user
def get_current_user_cookie(self): def get_current_user_cookie(self):
"""get_current_user from a cookie token""" """get_current_user from a cookie token"""
@@ -76,7 +76,7 @@ class BaseHandler(RequestHandler):
cookie_token = self.db.query(orm.CookieToken).filter( cookie_token = self.db.query(orm.CookieToken).filter(
orm.CookieToken.token==token).first() orm.CookieToken.token==token).first()
if cookie_token: if cookie_token:
return cookie_token.user.name return cookie_token.user
else: else:
# have cookie, but it's not valid. Clear it and start over. # have cookie, but it's not valid. Clear it and start over.
self.clear_cookie(self.hub.server.cookie_name, path=self.hub.server.base_url) self.clear_cookie(self.hub.server.cookie_name, path=self.hub.server.base_url)
@@ -88,7 +88,7 @@ class BaseHandler(RequestHandler):
return user return user
return self.get_current_user_cookie() return self.get_current_user_cookie()
def get_user(self, username): def user_from_username(self, username):
"""Get ORM User for username""" """Get ORM User for username"""
user = self.db.query(orm.User).filter(orm.User.name==username).first() user = self.db.query(orm.User).filter(orm.User.name==username).first()
@@ -99,10 +99,8 @@ class BaseHandler(RequestHandler):
return user return user
def clear_login_cookie(self): def clear_login_cookie(self):
username = self.get_current_user() user = self.get_current_user()
if username is not None: if user and user.server:
user = self.get_user(username)
if user.server is not None:
self.clear_cookie(user.server.cookie_name, path=user.server.base_url) self.clear_cookie(user.server.cookie_name, path=user.server.base_url)
self.clear_cookie(self.hub.server.cookie_name, path=self.hub.server.base_url) self.clear_cookie(self.hub.server.cookie_name, path=self.hub.server.base_url)
@@ -208,8 +206,7 @@ class BaseHandler(RequestHandler):
@property @property
def logged_in(self): def logged_in(self):
"""Is a user currently logged in?""" """Is a user currently logged in?"""
user = self.get_current_user() return self.get_current_user() is not None
return (user and not user == 'anonymous')
@property @property
def template_namespace(self): def template_namespace(self):
@@ -267,7 +264,7 @@ class RootHandler(BaseHandler):
"""Render the Hub root page.""" """Render the Hub root page."""
@web.authenticated @web.authenticated
def get(self): def get(self):
user = self.get_user(self.get_current_user()) user = self.get_current_user()
html = self.render_template('index.html', html = self.render_template('index.html',
server_running = user.server is not None, server_running = user.server is not None,
server_url = '/user/%s' % user.name, server_url = '/user/%s' % user.name,
@@ -281,10 +278,11 @@ class UserHandler(BaseHandler):
This handler shouldn't be called if the proxy is set up correctly. This handler shouldn't be called if the proxy is set up correctly.
""" """
@web.authenticated @web.authenticated
def get(self, user): def get(self, name):
self.log.warn("Hub serving single-user url: %s", self.request.path) self.log.warn("Hub serving single-user url: %s", self.request.path)
if self.get_current_user() == user: current_user = self.get_current_user()
self.spawn_single_user(self.get_user(user)) if current_user and current_user.name == name:
self.spawn_single_user(current_user)
self.redirect('') self.redirect('')
else: else:
self.log.warn("Hub serving single-user url: %s", self.request.path) self.log.warn("Hub serving single-user url: %s", self.request.path)

View File

@@ -6,8 +6,6 @@
from tornado.escape import url_escape from tornado.escape import url_escape
from tornado import gen from tornado import gen
from .. import orm
from .base import BaseHandler from .base import BaseHandler
@@ -46,7 +44,7 @@ class LoginHandler(BaseHandler):
username = data['username'] username = data['username']
authorized = yield self.authenticate(data) authorized = yield self.authenticate(data)
if authorized: if authorized:
user = self.get_user(username) user = self.user_from_username(username)
yield self.spawn_single_user(user) yield self.spawn_single_user(user)
self.set_login_cookies(user) self.set_login_cookies(user)
next_url = self.get_argument('next', default='') or self.hub.server.base_url next_url = self.get_argument('next', default='') or self.hub.server.base_url