Beispiel #1
0
def create_or_login(resp):
    session['openid'] = resp.identity_url
    session.permanent = True

    user = User.query.filter_by(openid=resp.identity_url).first()
    if user is not None:
        flash(u'You were successfully signed in.', 'success')
        g.user = user
        return redirect(oid.get_next_url())

    return redirect(url_for('create_profile',
                            next=oid.get_next_url(),
                            name=resp.nickname,
                            email=resp.email))
Beispiel #2
0
 def wrapper(*args, **kwargs):
     if g.user.is_guest:
         flash(u'Please sign in to view this page.', 'info')
         return rt('account/login.html',
                   next=oid.get_next_url(),
                   page=page,
                   create=app.debug,
                   error=oid.fetch_error())
     return target(*args, **kwargs)
Beispiel #3
0
def signin(t):
    if not g.user.is_guest:
        return redirect(oid.get_next_url())

    if request.method == 'POST':
        if app.debug:
            openid = request.form.get('openid')
        else:
            openid = "http://steamcommunity.com/openid"
        if openid:
            return oid.try_login(openid, ask_for=['nickname','email'])

    n = request.url or oid.get_next_url()
    if n.endswith('signin') or n.endswith('signin/'):
        n = n.replace('signin', '')

    error = oid.fetch_error()
    if error:
        flash(error, "error")

    return rt('account/login.html', n=n, next=oid.get_next_url(), create=app.debug)
Beispiel #4
0
def create_profile():
    if app.debug and 'openid' not in session:
        session['openid'] = 'test'

    if not g.user.is_guest or 'openid' not in session:
        return redirect(url_for('.index'))

    names = set()
    emails = set()
    for u in User.query.all():
        if u.name is not None:
            names.add(u.name.lower())
        if u.email is not None:
            emails.add(u.email.lower())

    form = UserForm()
    form.name.validators[0].values = names
    form.email.validators[0].values = emails

    if form.validate_on_submit():
        user = User(name=form.name.data,
                    email=form.email.data,
                    openid=session['openid'])

        db.session.add(user)
        db.session.commit()
        flash(u'Your profile was successfully created.', 'success')
        return redirect(oid.get_next_url())

    if not len(form.errors):
        form.name.data = request.values.get('name')
        form.email.data = request.values.get('email')

    form.next.data = oid.get_next_url()

    return rt('account/create.html', form=form)