X-Git-Url: http://git.veekun.com/zzz-floof.git/blobdiff_plain/29dd9f09e93699ac14cd80ea192794ff04cd8f35..da9dc9c1a060be8de3c13fa308a047b4b57eaaeb:/floof/controllers/account.py diff --git a/floof/controllers/account.py b/floof/controllers/account.py index 0c53a6d..7dabaa6 100644 --- a/floof/controllers/account.py +++ b/floof/controllers/account.py @@ -5,8 +5,8 @@ from openid.extensions.sreg import SRegRequest, SRegResponse from openid.store.filestore import FileOpenIDStore from sqlalchemy.orm.exc import NoResultFound -from pylons import request, response, session, tmpl_context as c, url -from pylons.controllers.util import abort, redirect_to +from pylons import request, response, session, tmpl_context as c, url, h +from pylons.controllers.util import abort, redirect from routes import url_for, request_config from floof.lib.base import BaseController, render @@ -35,7 +35,7 @@ class AccountController(BaseController): return_url = url_for(host=host, controller='account', action='login_finish') new_url = auth_request.redirectURL(return_to=return_url, realm=protocol + '://' + host) - redirect_to(new_url) + redirect(new_url) def login_finish(self): """Step two of logging in; the OpenID provider redirects back here.""" @@ -63,14 +63,25 @@ class AccountController(BaseController): session['register:nickname'] = sreg_res['nickname'] session.save() - redirect_to(url.current(action='register')) + redirect(url('register')) # Remember who's logged in, and we're good to go session['user_id'] = user.id session.save() # XXX send me where I came from - redirect_to('/') + redirect('/') + + def logout(self): + """Log user out.""" + + if 'user_id' in session: + del session['user_id'] + session.save() + + # XXX success message + # XXX send me where I came from + redirect('/') def register(self): """Logging in with an unrecognized identity URL redirects here.""" @@ -105,4 +116,4 @@ class AccountController(BaseController): # XXX how do we do success messages in some useful way? # XXX send me where I came from - redirect_to('/') + redirect('/')