import logging
-from openid.consumer.consumer import Consumer
+from openid.consumer.consumer import Consumer, SUCCESS, CANCEL
from openid.extensions.sreg import SRegRequest, SRegResponse
from openid.store.filestore import FileOpenIDStore
from openid.yadis.discover import DiscoveryFailure
from pylons.controllers.util import abort, redirect_to
from routes import request_config
-from spline import model
from spline.model import meta
from spline.lib import helpers as h
from spline.lib.base import BaseController, render
+from splinext.users import model as users_model
log = logging.getLogger(__name__)
return_url = url(host=host, controller='accounts', action='login_finish')
res = cons.complete(request.params, return_url)
- if res.status != 'success':
+ if res.status == CANCEL:
+ # I guess.. just.. back to the homepage?
+ h.flash(u"""Login canceled.""", icon='user-silhouette')
+ redirect_to(url('/'))
+ elif res.status != SUCCESS:
return 'Error! %s' % res.message
try:
# Grab an existing user record, if one exists
- q = meta.Session.query(model.User) \
- .filter(model.User.openids.any(openid=res.identity_url))
+ q = meta.Session.query(users_model.User) \
+ .filter(users_model.User.openids.any(openid=res.identity_url))
user = q.one()
except NoResultFound:
# Try to pull a name out of the SReg response
username = 'Anonymous'
# Create db records
- user = model.User(name=username)
+ user = users_model.User(name=username)
meta.Session.add(user)
- openid = model.OpenID(openid=res.identity_url)
+ openid = users_model.OpenID(openid=res.identity_url)
user.openids.append(openid)
meta.Session.commit()