Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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