From 0f6d0f524b7a3a1c468e117fcc7f1b996a2eebca Mon Sep 17 00:00:00 2001
From: Mitchell Moore <mmoo97@uab.edu>
Date: Thu, 19 Mar 2020 10:53:28 -0500
Subject: [PATCH 1/9] Test referrer capture

---
 app/__init__.py | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/app/__init__.py b/app/__init__.py
index 2343984..4af703d 100644
--- a/app/__init__.py
+++ b/app/__init__.py
@@ -23,7 +23,15 @@ def create_app(config_name):
         if "redir" in request.args and 'return_url' not in session: # check for redir arg in url
             session['return_url'] = request.args.get("redir") or "/pun/sys/dashboard"
 
-        return render_template('auth/SignUp.html', room_id=session['uid'])
+        referrer = request.referrer
+
+        print(referrer)
+
+        return render_template('auth/SignUp.html', room_id=session['uid'], referrer=referrer)
+
+    def redirect_url():
+        return request.args.get('next') or \
+               request.referrer
 
     # misc page error catching
     @app.errorhandler(403)
-- 
GitLab


From 143a70120aeb956cb7b3a017f887455d5ebb2c76 Mon Sep 17 00:00:00 2001
From: Mitchell Moore <mmoo97@uab.edu>
Date: Thu, 19 Mar 2020 11:38:37 -0500
Subject: [PATCH 2/9] Create referer test with redirect implementation

---
 app/__init__.py                | 6 +-----
 app/templates/auth/SignUp.html | 1 +
 run.py                         | 2 +-
 3 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/app/__init__.py b/app/__init__.py
index 4af703d..63abf80 100644
--- a/app/__init__.py
+++ b/app/__init__.py
@@ -25,14 +25,10 @@ def create_app(config_name):
 
         referrer = request.referrer
 
-        print(referrer)
+        print("Referer: " + referrer)
 
         return render_template('auth/SignUp.html', room_id=session['uid'], referrer=referrer)
 
-    def redirect_url():
-        return request.args.get('next') or \
-               request.referrer
-
     # misc page error catching
     @app.errorhandler(403)
     def forbidden(error):
diff --git a/app/templates/auth/SignUp.html b/app/templates/auth/SignUp.html
index 617b083..7d2ac36 100644
--- a/app/templates/auth/SignUp.html
+++ b/app/templates/auth/SignUp.html
@@ -21,6 +21,7 @@
         socket.on( 'account ready', function( msg ) {
           $('#myModal').modal('hide');
           alert("Account has been created!");
+          window.location.replace({{ referrer }});
         })
 
         socket.on( 'Account creation failed', function( msg ) {
diff --git a/run.py b/run.py
index 6f6065a..7a9c2b0 100644
--- a/run.py
+++ b/run.py
@@ -2,7 +2,6 @@
 
 import os
 import time
-import signal
 import tasks
 import vars
 
@@ -23,6 +22,7 @@ socketio = SocketIO(app, message_queue= vars.message_queue)
 def socket_connect():
     pass
 
+
 @socketio.on('join_room')
 def on_room():
 
-- 
GitLab


From 896eb7e87e1dd624f45e8f5343eec5484fd279c4 Mon Sep 17 00:00:00 2001
From: Mitchell Moore <mmoo97@uab.edu>
Date: Thu, 19 Mar 2020 13:29:28 -0500
Subject: [PATCH 3/9] Handle nontype referrer

---
 app/__init__.py | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/app/__init__.py b/app/__init__.py
index 63abf80..cb60225 100644
--- a/app/__init__.py
+++ b/app/__init__.py
@@ -25,7 +25,11 @@ def create_app(config_name):
 
         referrer = request.referrer
 
-        print("Referer: " + referrer)
+        if referrer is None:
+
+            print("Referer: None")
+        else:
+            print("Referer: " + referrer)
 
         return render_template('auth/SignUp.html', room_id=session['uid'], referrer=referrer)
 
-- 
GitLab


From bcb2b04bd63f78a33689900c391311385f917796 Mon Sep 17 00:00:00 2001
From: Mitchell Moore <mmoo97@uab.edu>
Date: Fri, 20 Mar 2020 08:40:09 -0500
Subject: [PATCH 4/9] Fix variable name

---
 run.py | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/run.py b/run.py
index 7a9c2b0..b2b023b 100644
--- a/run.py
+++ b/run.py
@@ -34,10 +34,10 @@ def on_room():
 @socketio.on('request account')
 def request_account(json, methods=['GET', 'POST']):
     print (time.strftime("%m-%d-%Y_%H:%M:%S") + '\tQueue request received: ' + str(json))
-    sid = str(session['uid'])
-    print("Room: {}".format(sid))
+    room = str(session['uid'])
+    print("Room: {}".format(room))
     try:
-        tasks.celery_create_account.delay(json['username'], json['fullname'], json['reason'], session=sid)
+        tasks.celery_create_account.delay(json['username'], json['fullname'], json['reason'], session=room)
     except Exception as e:
         print(time.strftime("%m-%d-%Y_%H:%M:%S") + "\tError in account creation: ", e)
         socketio.emit("Account creation failed", room)
-- 
GitLab


From dfbed26c9f0a51d6e6389f008f5bb06b2a85c909 Mon Sep 17 00:00:00 2001
From: Mitchell Moore <mmoo97@uab.edu>
Date: Fri, 20 Mar 2020 09:37:30 -0500
Subject: [PATCH 5/9] Implement default referrer

---
 app/__init__.py | 9 +++------
 vars.py         | 1 +
 2 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/app/__init__.py b/app/__init__.py
index cb60225..8460cfa 100644
--- a/app/__init__.py
+++ b/app/__init__.py
@@ -2,6 +2,7 @@
 
 # local imports
 from __future__ import print_function
+import vars
 
 # third-party imports
 import uuid
@@ -23,13 +24,9 @@ def create_app(config_name):
         if "redir" in request.args and 'return_url' not in session: # check for redir arg in url
             session['return_url'] = request.args.get("redir") or "/pun/sys/dashboard"
 
-        referrer = request.referrer
+        referrer = request.referrer or vars.default_referrer
 
-        if referrer is None:
-
-            print("Referer: None")
-        else:
-            print("Referer: " + referrer)
+        print("Referer: " + referrer)
 
         return render_template('auth/SignUp.html', room_id=session['uid'], referrer=referrer)
 
diff --git a/vars.py b/vars.py
index 6d94b57..988ed18 100644
--- a/vars.py
+++ b/vars.py
@@ -3,3 +3,4 @@ password = 'reggie'
 key = 'vnkdjnfjknfl1232'
 broker_url =  'amqp://' + id + ':' + password + '@ohpc:5672/'
 message_queue =  broker_url + 'socketio'
+default_referrer = "https://docs.uabgrid.uab.edu/wiki/Cheaha_Quick_Start"
-- 
GitLab


From 91f3b38922856a0646ef590e123f64d31bccb8eb Mon Sep 17 00:00:00 2001
From: Mitchell Moore <mmoo97@uab.edu>
Date: Fri, 20 Mar 2020 09:40:33 -0500
Subject: [PATCH 6/9] Fix syntax error

---
 app/templates/auth/SignUp.html | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/templates/auth/SignUp.html b/app/templates/auth/SignUp.html
index 7d2ac36..0e25d24 100644
--- a/app/templates/auth/SignUp.html
+++ b/app/templates/auth/SignUp.html
@@ -21,7 +21,7 @@
         socket.on( 'account ready', function( msg ) {
           $('#myModal').modal('hide');
           alert("Account has been created!");
-          window.location.replace({{ referrer }});
+          window.location.replace('{{ referrer }}');
         })
 
         socket.on( 'Account creation failed', function( msg ) {
-- 
GitLab


From ebb2e3676385056785d9f95bbb70775deeb7678f Mon Sep 17 00:00:00 2001
From: Mitchell Moore <mmoo97@uab.edu>
Date: Fri, 20 Mar 2020 09:50:31 -0500
Subject: [PATCH 7/9] Clean up server output

---
 app/__init__.py                |  2 --
 app/templates/auth/SignUp.html | 12 +++++++-----
 run.py                         |  4 +++-
 3 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/app/__init__.py b/app/__init__.py
index 8460cfa..67820e2 100644
--- a/app/__init__.py
+++ b/app/__init__.py
@@ -26,8 +26,6 @@ def create_app(config_name):
 
         referrer = request.referrer or vars.default_referrer
 
-        print("Referer: " + referrer)
-
         return render_template('auth/SignUp.html', room_id=session['uid'], referrer=referrer)
 
     # misc page error catching
diff --git a/app/templates/auth/SignUp.html b/app/templates/auth/SignUp.html
index 0e25d24..891a09a 100644
--- a/app/templates/auth/SignUp.html
+++ b/app/templates/auth/SignUp.html
@@ -11,24 +11,26 @@
     var socket = io.connect('http://' + document.domain + ':' + location.port);
 
     socket.on( 'connect', function() {
-        socket.emit( 'join_room' )
+        socket.emit( 'join_room', {
+            referrer: '{{ referrer }}'
+        });
 
         socket.on( 'creating account', function( msg ) {
            document.getElementById("error").innerText = "";
            displayloading();
-        })
+        });
 
         socket.on( 'account ready', function( msg ) {
           $('#myModal').modal('hide');
           alert("Account has been created!");
           window.location.replace('{{ referrer }}');
-        })
+        });
 
         socket.on( 'Account creation failed', function( msg ) {
           document.getElementById("error").innerText = "Registration Failed. Please try again.";
-        })
+        });
 
-    })
+    });
 </script>
 
   <style type="text/css">
diff --git a/run.py b/run.py
index b2b023b..9ed918f 100644
--- a/run.py
+++ b/run.py
@@ -24,11 +24,13 @@ def socket_connect():
 
 
 @socketio.on('join_room')
-def on_room():
+def on_room(json):
 
     room = str(session['uid'])
+    referrer = json['referrer']
     join_room(room)
     print('\t\t\t|-----Room ID: ' + room)
+    print('\t\t\t|-----Referrer: ' + referrer)
 
 
 @socketio.on('request account')
-- 
GitLab


From 804cfa263c564166c72527a746586b1517aff09a Mon Sep 17 00:00:00 2001
From: Mitchell Moore <mmoo97@uab.edu>
Date: Fri, 20 Mar 2020 11:24:16 -0500
Subject: [PATCH 8/9] Condense return url functionality

---
 app/__init__.py | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/app/__init__.py b/app/__init__.py
index 67820e2..3486515 100644
--- a/app/__init__.py
+++ b/app/__init__.py
@@ -22,11 +22,9 @@ def create_app(config_name):
             session['uid']=str(uuid.uuid4())
 
         if "redir" in request.args and 'return_url' not in session: # check for redir arg in url
-            session['return_url'] = request.args.get("redir") or "/pun/sys/dashboard"
+            session['return_url'] = request.args.get("redir") or request.referrer or vars.default_referrer
 
-        referrer = request.referrer or vars.default_referrer
-
-        return render_template('auth/SignUp.html', room_id=session['uid'], referrer=referrer)
+        return render_template('auth/SignUp.html', room_id=session['uid'], referrer=session['return_url'])
 
     # misc page error catching
     @app.errorhandler(403)
-- 
GitLab


From 44ffc89fe833097e30fe2b912c50f43fe0718db2 Mon Sep 17 00:00:00 2001
From: Mitchell Moore <mmoo97@uab.edu>
Date: Fri, 20 Mar 2020 11:59:48 -0500
Subject: [PATCH 9/9] Fix return url priority. Clean up whitespace

---
 app/__init__.py | 2 +-
 tasks.py        | 2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/app/__init__.py b/app/__init__.py
index 3486515..2ef919d 100644
--- a/app/__init__.py
+++ b/app/__init__.py
@@ -22,7 +22,7 @@ def create_app(config_name):
             session['uid']=str(uuid.uuid4())
 
         if "redir" in request.args and 'return_url' not in session: # check for redir arg in url
-            session['return_url'] = request.args.get("redir") or request.referrer or vars.default_referrer
+            session['return_url'] = request.args.get("redir") or vars.default_referrer or request.referrer
 
         return render_template('auth/SignUp.html', room_id=session['uid'], referrer=session['return_url'])
 
diff --git a/tasks.py b/tasks.py
index e380c9c..7deec3a 100644
--- a/tasks.py
+++ b/tasks.py
@@ -12,10 +12,12 @@ celery = Celery('flask_user_reg', broker=broker_url)
 
 socketio = SocketIO(message_queue=vars.message_queue)
 
+
 def send_msg(event, room):
    print("Post '{}' to room '{}'".format(event,room))
    socketio.emit(event, room=room)
 
+
 @celery.task
 def celery_create_account(username, fullname, reason, session):
     room = session
-- 
GitLab