diff --git a/app/__init__.py b/app/__init__.py index 23439845aaa857574243ca1486b807eb9f47aa33..c30a7f15fe768cea4c82808aeb8b10d79d782177 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 @@ -21,9 +22,13 @@ 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") + 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']) + return render_template('auth/SignUp.html', room_id=session['uid'], referrer=session['return_url']) # misc page error catching @app.errorhandler(403) diff --git a/app/templates/auth/SignUp.html b/app/templates/auth/SignUp.html index cf94720b1fdd539066f461ec4650b6bc76480bbb..21493bf0dd5a3957db4e261f5df19bfa454cddac 100644 --- a/app/templates/auth/SignUp.html +++ b/app/templates/auth/SignUp.html @@ -11,23 +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 5f0bb8d916ddd0abfa1b69a1a31225dac1710978..9ed918fd038a911644475cb6f7255f745b1076e6 100644 --- a/run.py +++ b/run.py @@ -2,7 +2,6 @@ import os import time -import signal import tasks import vars @@ -23,12 +22,15 @@ socketio = SocketIO(app, message_queue= vars.message_queue) def socket_connect(): pass + @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') diff --git a/tasks.py b/tasks.py index e380c9cfdbffe7ca02d9dc36252b83845b6480c8..7deec3a983efced1851970ae9359b17d211862ae 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 diff --git a/vars.py b/vars.py index 07f38f6e1221232bdb3af9cf5bc4a6924081b1a4..8314f9d955c4c3029bf374de2dee84fd74298817 100644 --- a/vars.py +++ b/vars.py @@ -3,3 +3,4 @@ password = '' key = '' broker_url = 'amqp://' + id + ':' + password + '@ohpc:5672/' message_queue = broker_url + 'socketio' +default_referrer = "https://docs.uabgrid.uab.edu/wiki/Cheaha_Quick_Start"