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