Example #1
0
def login():
    if g.user is not None:
        return redirect(oid.get_next_url())

    if request.method == 'POST':
        openid = request.form.get('openid')
        if openid:
            return oid.try_login(COMMON_PROVIDERS.get(openid, "fackeone"),
                    ask_for=['email', 'fullname', 'nickname'])

    return render_template('account/login.html',
             next=oid.get_next_url(),
             error=oid.fetch_error())
Example #2
0
def create_or_login(rsp):
    session['openid'] = rsp.identity_url

    user = User.query.filter_by(openid=rsp.identity_url).first()
    if user is not None:
        flash(_('Successfully signed in'), 'success')
        identity_changed.send(current_app._get_current_object(), identity=Identity(user.pk))
        return redirect(oid.get_next_url())

    return redirect(url_for('create_profile',
        next=oid.get_next_url(),
        nickname=rsp.nickname or rsp.fullname,
        email=rsp.email))
Example #3
0
def create_profile():
    if g.user is not None or 'openid' not in session:
        return redirect(url_for('home.index'))

    form = SignupForm(
            next=oid.get_next_url,
            nickname=request.values.get('nickname', None),
            email=request.values.get('email', None),
            )

    if form.validate_on_submit():
        user = User(openid=session['openid'])
        user.init_optional()
        form.populate_obj(user)

        user.save()
        identity_changed.send(current_app._get_current_object(), identity=Identity(user.pk))

        flash(_('Profile successfully created'), 'success')

        return redirect(oid.get_next_url())

    return render_template('account/create_profile.html',
            form=form)
Example #4
0
def logout():
    session.pop('openid', None)
    identity_changed.send(current_app._get_current_object(), identity=AnonymousIdentity())
    flash(_('You have been signed out'), 'success')
    return redirect(oid.get_next_url())