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 27e2f4f3f35dacd90588f44167854bc208ab838e..891a09a663e1b0ed49f4d0bd2a13840cd8371f2c 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"> @@ -130,4 +133,3 @@ </footer> </body> </html> - diff --git a/run.py b/run.py index 85381ffeae10bfc67c2c3c39d5cccd14ade60590..ff6b02509478326d87d84364bab4c9601b0025b2 100644 --- a/run.py +++ b/run.py @@ -2,7 +2,6 @@ import os import time -import signal import tasks import vars @@ -20,12 +19,15 @@ app.config['SECRET_KEY'] = vars.key socketio = SocketIO(app, message_queue= vars.message_queue) + @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 6d94b575576d681038412710f250ff3afd6db43f..988ed189b5e50a07f975d42ca46ab92e9b693ab0 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"