Skip to content
Snippets Groups Projects
Commit b81897c3 authored by Mitchell Moore's avatar Mitchell Moore
Browse files

Implemented referrer to capture user entrypoint, to be used to redirect to on account creation

- Feat redirect
- Fix redir logic
parent 9c756ddd
No related branches found
No related tags found
No related merge requests found
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
# local imports # local imports
from __future__ import print_function from __future__ import print_function
import vars
# third-party imports # third-party imports
import uuid import uuid
...@@ -21,9 +22,13 @@ def create_app(config_name): ...@@ -21,9 +22,13 @@ def create_app(config_name):
session['uid']=str(uuid.uuid4()) session['uid']=str(uuid.uuid4())
if "redir" in request.args and 'return_url' not in session: # check for redir arg in url 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 # misc page error catching
@app.errorhandler(403) @app.errorhandler(403)
......
...@@ -11,23 +11,26 @@ ...@@ -11,23 +11,26 @@
var socket = io.connect('http://' + document.domain + ':' + location.port); var socket = io.connect('http://' + document.domain + ':' + location.port);
socket.on( 'connect', function() { socket.on( 'connect', function() {
socket.emit( 'join_room' ) socket.emit( 'join_room', {
referrer: '{{ referrer }}'
});
socket.on( 'creating account', function( msg ) { socket.on( 'creating account', function( msg ) {
document.getElementById("error").innerText = ""; document.getElementById("error").innerText = "";
displayloading(); displayloading();
}) });
socket.on( 'account ready', function( msg ) { socket.on( 'account ready', function( msg ) {
$('#myModal').modal('hide'); $('#myModal').modal('hide');
alert("Account has been created!"); alert("Account has been created!");
}) window.location.replace('{{ referrer }}');
});
socket.on( 'Account creation failed', function( msg ) { socket.on( 'Account creation failed', function( msg ) {
document.getElementById("error").innerText = "Registration Failed. Please try again."; document.getElementById("error").innerText = "Registration Failed. Please try again.";
}) });
}) });
</script> </script>
<style type="text/css"> <style type="text/css">
...@@ -130,4 +133,3 @@ ...@@ -130,4 +133,3 @@
</footer> </footer>
</body> </body>
</html> </html>
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
import os import os
import time import time
import signal
import tasks import tasks
import vars import vars
...@@ -20,12 +19,15 @@ app.config['SECRET_KEY'] = vars.key ...@@ -20,12 +19,15 @@ app.config['SECRET_KEY'] = vars.key
socketio = SocketIO(app, message_queue= vars.message_queue) socketio = SocketIO(app, message_queue= vars.message_queue)
@socketio.on('join_room') @socketio.on('join_room')
def on_room(): def on_room(json):
room = str(session['uid']) room = str(session['uid'])
referrer = json['referrer']
join_room(room) join_room(room)
print('\t\t\t|-----Room ID: ' + room) print('\t\t\t|-----Room ID: ' + room)
print('\t\t\t|-----Referrer: ' + referrer)
@socketio.on('request account') @socketio.on('request account')
......
...@@ -12,10 +12,12 @@ celery = Celery('flask_user_reg', broker=broker_url) ...@@ -12,10 +12,12 @@ celery = Celery('flask_user_reg', broker=broker_url)
socketio = SocketIO(message_queue=vars.message_queue) socketio = SocketIO(message_queue=vars.message_queue)
def send_msg(event, room): def send_msg(event, room):
print("Post '{}' to room '{}'".format(event,room)) print("Post '{}' to room '{}'".format(event,room))
socketio.emit(event, room=room) socketio.emit(event, room=room)
@celery.task @celery.task
def celery_create_account(username, fullname, reason, session): def celery_create_account(username, fullname, reason, session):
room = session room = session
......
...@@ -3,3 +3,4 @@ password = 'reggie' ...@@ -3,3 +3,4 @@ password = 'reggie'
key = 'vnkdjnfjknfl1232' key = 'vnkdjnfjknfl1232'
broker_url = 'amqp://' + id + ':' + password + '@ohpc:5672/' broker_url = 'amqp://' + id + ':' + password + '@ohpc:5672/'
message_queue = broker_url + 'socketio' message_queue = broker_url + 'socketio'
default_referrer = "https://docs.uabgrid.uab.edu/wiki/Cheaha_Quick_Start"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment