def do_auth(resp): print 'in do_auth' session['openid'] = resp.identity_url user = User.query.filter_by(openid=resp.identity_url).first() if user is None: # регистрируем if not resp.nickname and not 'nick' in session: return 'Ошибка: не указан ник' # TODO: запросить ник у пользователя. То же для email, если не уникален. # а должен ли email быть уникальным? nick = resp.nickname or session['nick'] n=1 while User.query.filter_by(nick=nick).count() > 0: # обеспечиваем уникальность ника nick = '%s_%d' % (resp.nickname, n) n += 1 user = User(nick, resp.email, openid=resp.identity_url) db.session.add(user) db.session.commit() flash(u'Пользователь зарегистрирован') flash(u'Вход выполнен') user.update_lastlogin() g.user = user return redirect(oid.get_next_url(), 303)
def do_auth(resp): print 'in do_auth' session['openid'] = resp.identity_url user = User.query.filter_by(openid=resp.identity_url).first() if user is None: # регистрируем if not resp.nickname and not 'nick' in session: return 'Ошибка: не указан ник' # TODO: запросить ник у пользователя. То же для email, если не уникален. # а должен ли email быть уникальным? nick = resp.nickname or session['nick'] n = 1 while User.query.filter_by( nick=nick).count() > 0: # обеспечиваем уникальность ника nick = '%s_%d' % (resp.nickname, n) n += 1 user = User(nick, resp.email, openid=resp.identity_url) db.session.add(user) db.session.commit() flash(u'Пользователь зарегистрирован') flash(u'Вход выполнен') user.update_lastlogin() g.user = user return redirect(oid.get_next_url(), 303)
from gruf.views.login import login from gruf.views.qlist import qlist from gruf.views.abyss import abyss from gruf.views.quote import quote from gruf.views.users import users from gruf.views.releases import releases app.register_module(main) app.register_module(login, url_prefix='/login') app.register_module(qlist, url_prefix='/list') app.register_module(abyss, url_prefix='/abyss') app.register_module(quote, url_prefix='/quote') app.register_module(users, url_prefix='/users') app.register_module(releases, url_prefix='/releases') if not app.debug: import logging from gruf.logmail import PipeMailHandler from gruf.database import User mail_handler = PipeMailHandler(User.admin_mails(), 'GRuF: Error') mail_handler.setLevel(logging.ERROR) app.logger.addHandler(mail_handler) @app.before_request def lookup_current_user(): g.user = None if 'openid' in session: from gruf.database import User g.user = User.query.filter_by( openid=session['openid']).first() # first: если нет, то None
from gruf.views.main import main from gruf.views.login import login from gruf.views.qlist import qlist from gruf.views.abyss import abyss from gruf.views.quote import quote from gruf.views.users import users from gruf.views.releases import releases app.register_module(main) app.register_module(login, url_prefix='/login') app.register_module(qlist, url_prefix='/list') app.register_module(abyss, url_prefix='/abyss') app.register_module(quote, url_prefix='/quote') app.register_module(users, url_prefix='/users') app.register_module(releases, url_prefix='/releases') if not app.debug: import logging from gruf.logmail import PipeMailHandler from gruf.database import User mail_handler = PipeMailHandler(User.admin_mails(), 'GRuF: Error') mail_handler.setLevel(logging.ERROR) app.logger.addHandler(mail_handler) @app.before_request def lookup_current_user(): g.user = None if 'openid' in session: from gruf.database import User g.user = User.query.filter_by(openid=session['openid']).first() # first: если нет, то None