def login(): # if already logged in, go back to were came from if flask.g.user is not None: return flask.redirect(oid.get_next_url()) return flask.render_template('login.html', next=oid.get_next_url(), error=oid.fetch_error())
def create_or_login(resp): flask.session['openid'] = resp.identity_url user = User.query.filter_by(openid=resp.identity_url).first() if user is not None: flask.flash(_(u'Successfully signed in.'), "success") flask.g.user = user return flask.redirect(oid.get_next_url()) return flask.redirect(flask.url_for('auth.add_new_user', next=oid.get_next_url(), name=resp.fullname or resp.nickname, email=resp.email))
def add_new_user(): if flask.g.user is not None or 'openid' not in flask.session: return flask.redirect(oid.get_next_url()) try: name = flask.request.args.getlist('name')[0] except IndexError: name = None try: email = flask.request.args.getlist('email')[0] except IndexError: email = None flask.flash(_('Newcomer admin. Welcome!'), "success") db_session.add(User(name, email, flask.session['openid'])) db_session.commit() return flask.redirect(oid.get_next_url())
def logout(): flask.session.pop('openid', None) flask.flash(_(u'Successfully signed out.'), "success") return flask.redirect(oid.get_next_url())
def yahoo_login(): if flask.g.user is not None: return flask.redirect(oid.get_next_url()) return oid.try_login(COMMON_PROVIDERS['yahoo'], ask_for=['email', 'fullname', 'nickname'])