From 5f1c3f1c074a35a41ba330ef70e6245a6cf79e04 Mon Sep 17 00:00:00 2001 From: Ralph Bean Date: Jun 04 2015 18:43:23 +0000 Subject: Get the super duper basics of openid login/logout work. --- diff --git a/hubs/app.py b/hubs/app.py index 9bc3f88..0b98b60 100644 --- a/hubs/app.py +++ b/hubs/app.py @@ -2,6 +2,7 @@ import functools import os import flask +import munch from flask.ext.openid import OpenID @@ -133,7 +134,7 @@ def login(): @app.route('/login/fedora/') @app.route('/login/fedora') @oid.loginhandler -def fedora_login(): +def login_fedora(): #default = flask.url_for('profile_redirect') #next_url = flask.request.args.get('next', default) return oid.try_login( @@ -173,7 +174,7 @@ def login_required(function): if not flask.g.auth.logged_in: flask.flash('Login required', 'errors') return flask.redirect(flask.url_for( - 'fedora_login', next=flask.request.url)) + 'login_fedora', next=flask.request.url)) # TODO - Ensure that the logged in user exists before we proceed. hubs.models.User.get_or_create( @@ -186,5 +187,25 @@ def login_required(function): return decorated_function +@app.before_request +def check_auth(): + flask.g.fedmsg_config = fedmsg_config + flask.g.auth = munch.Munch( + logged_in=False, + method=None, + id=None, + ) + if 'openid' in flask.session: + openid = flask.session.get('openid').split('/')[-1] + flask.g.auth.logged_in = True + flask.g.auth.method = u'openid' + flask.g.auth.openid = openid + flask.g.auth.openid_url = flask.session.get('openid') + flask.g.auth.fullname = flask.session.get('fullname', None) + flask.g.auth.nickname = flask.session.get('nickname', None) + flask.g.auth.email = flask.session.get('email', None) + + + if __name__ == '__main__': app.run(debug=True) diff --git a/hubs/templates/hubs.html b/hubs/templates/hubs.html index f5935e5..a201ef1 100644 --- a/hubs/templates/hubs.html +++ b/hubs/templates/hubs.html @@ -53,6 +53,13 @@
+ {% if g.auth.logged_in %} + Logged in as {{ g.auth.nickname }} + {% else %} + Not logged in. Click to login. + {% endif %} +
+
{% for widget in hub.left_widgets %}
diff --git a/requirements.txt b/requirements.txt index 306c469..820a56c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,5 +3,5 @@ sqlalchemy fedmsg dogpile.cache fedmsg_meta_fedora_infrastructure -pysqlite flask-openid +munch