log = logging.getLogger(__name__)
+from floof.model import UserPage
+
class AccountController(BaseController):
openid_store = FileOpenIDStore('/var/tmp')
# Remember who's logged in, and we're good to go
session['user_id'] = user.id
session.save()
+ h.flash(u'You are now logged in.')
# XXX send me where I came from
redirect('/')
c.identity_url = session['register:identity_url']
c.nickname = session.get('register:nickname', None)
+ # XXX hey, uh. warn if this name is taken already.
return render('/account/register.mako')
identity_url = session['register:identity_url']
username = request.params.get('username', None)
- # XXX how do we return errors in some useful way?
-
if not username:
- return 'Please enter a username.'
+ h.flash(u'Please enter a username.')
+ return self.register()
if User.query.filter_by(name=username).count():
- return 'That username is taken.'
+ h.flash(u'This username is already taken.')
+ return self.register()
+
+ if not User.is_valid_name(username):
+ h.flash(u'This username is not valid.')
+ return self.register()
+
+ if username in ['me']:
+ h.flash(u'This username is reserved.')
+ return self.register()
# Create db records
- user = User(name=username)
+ user = User(name=username, display_name=username)
user.identity_urls.append(IdentityURL(url=identity_url))
+
elixir.session.commit()
# Log in
session['user_id'] = user.id
session.save()
+ h.flash(u'You are now logged in.')
- # XXX how do we do success messages in some useful way?
# XXX send me where I came from
redirect('/')