From 01b2c48804514a36cf9bf306901f4261c5c44d52 Mon Sep 17 00:00:00 2001 From: Mitchell Moore <mmoo97@uab.edu> Date: Fri, 5 Jun 2020 09:48:03 -0500 Subject: [PATCH] Add shib var capture --- app/__init__.py | 42 ++++++++++++++++++------------------------ 1 file changed, 18 insertions(+), 24 deletions(-) diff --git a/app/__init__.py b/app/__init__.py index a34c109..c3dfccd 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -8,46 +8,40 @@ import vars import uuid from flask import Flask, redirect, url_for, request, render_template, flash, session from flask_bootstrap import Bootstrap -from flask_sso import SSO def create_app(config_name): - app = Flask(__name__) # initialization of the flask app - Bootstrap(app) # allowing app to use bootstrap + app = Flask(__name__) # initialization of the flask app + Bootstrap(app) # allowing app to use bootstrap - SSO_ATTRIBUTE_MAP = { - 'ADFS_LOGIN': (True, 'username'), - 'ADFS_FULLNAME': (True, 'fullname'), - 'ADFS_EMAIL': (True, 'email') - } - app.config.setdefault('SSO_ATTRIBUTE_MAP', SSO_ATTRIBUTE_MAP) - app.config.setdefault('SSO_LOGIN_URL', '/login') + def get_shib_user(): + session['user'] = { + "username": request.environ.get("HTTP_UID"), + "fullname": request.environ.get("HTTP_DISPLAYNAME"), + "email": request.environ.get("HTTP_MAIL") + } - shib = SSO(app=app) - - @shib.login_handler - def login(user_info): - session['user'] = user_info - return redirect('/') - - @app.route('/', methods=['GET', 'POST']) # initial route to display the reg page + @app.route('/', methods=['GET', 'POST']) # initial route to display the reg page def index(): if 'uid' not in session: session['uid'] = str(uuid.uuid4()) - if "redir" in request.args and 'return_url' not in session: # check for redir arg in url + if 'user' not in session: + get_shib_user() + + if "redir" in request.args and 'return_url' not in session: # check for redir arg in url session['return_url'] = request.args.get("redir") + elif "redir" not in request.args and 'return_url' not in session: session['return_url'] = vars.default_referrer + else: session['return_url'] = request.referrer - # return render_template('auth/SignUp.html', room_id=session['uid'], username=session['user'].get('username'), - # fullname=session['user'].get('fullname'), email=session['user'].get('email'), - # referrer=session['return_url']) - - return render_template('auth/SignUp.html', room_id=session['uid'], referrer=session['return_url']) + return render_template('auth/SignUp.html', room_id=session['uid'], username=session['user'].get('username'), + fullname=session['user'].get('fullname'), email=session['user'].get('email'), + referrer=session['return_url']) # misc page error catching @app.errorhandler(403) -- GitLab