Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • mmoo97/flask_user_reg
  • tr27p/flask_user_reg
  • ishan747/flask_user_reg
  • louistw/flask_user_reg
  • krish94/flask_user_reg
  • rrand11/flask_user_reg
  • ravi89/flask_user_reg
7 results
Show changes
Commits on Source (23)
...@@ -13,7 +13,7 @@ $ cd flask_user_reg ...@@ -13,7 +13,7 @@ $ cd flask_user_reg
### Setup a Virtual Environment ### Setup a Virtual Environment
- Ensure you have created a [virtual environment](https://docs.python.org/3/library/venv.html) - Ensure you have created a [virtual environment](https://docs.python.org/3/library/venv.html)
called `venv` setup running python3. called `venv` setup running python3.
- Note, this project requires a virtual environment running __python3__ (__3.4.10__ in this case). - Note, this project requires a virtual environment running __python3__ (__3.6.8__ in this case).
- Create this by navigating to you home directory via typing `$ cd` and entering the following commands:<br> - Create this by navigating to you home directory via typing `$ cd` and entering the following commands:<br>
``` ```
$ python3 -m venv ~/venv $ python3 -m venv ~/venv
......
...@@ -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)
......
function displayloading() { function displayloading() {
document.getElementById("notification_window").innerHTML = "" + $('#myModal').modal('show');
"<div class=\"joyride-tip-guide\" data-index=\"0\" style=\"visibility: visible; display: block; top: 77.5px; left: 570px;\"><span class=\"joyride-nub\" style=\"display: none;\"></span><div class=\"joyride-content-wrapper\" role=\"dialog\"><ol>\n" +
" <h4>\n" +
"\n" +
" Your account is pending creation...\n" +
"\n" +
" </h4>\n" +
" <br><p>\n" +
" This can take between 5-10 min.\n" +
" </p>\n" +
" </ol>\n" +
" <img src=\"/static/img/loading.gif\" style=\"width: 35px; height: auto\"> Pending...\n" +
" </div></div>\n" +
"\n" +
" <div class=\"joyride-modal-bg\" style=\"display: block;\"></div>"
} }
function request_account() { function request_account() {
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
<head> <head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.7.3/socket.io.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.7.3/socket.io.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha384-aJ21OjlMXNL5UyIl/XNwTMqvzeRMZH2w8c5cRVpzpU8Y5bApTppSuUkhZXN0VxHd" crossorigin="anonymous"></script>
<script src="{{ url_for('static', filename='scripts/function.js') }}"></script> <script src="{{ url_for('static', filename='scripts/function.js') }}"></script>
<script> <script>
...@@ -10,26 +11,26 @@ ...@@ -10,26 +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 ) {
let element = document.getElementById("notification_window"); $('#myModal').modal('hide');
element.parentNode.removeChild(element); alert("Account has been created!");
element.innerHTML = " "; window.location.replace('{{ referrer }}');
alert("Account creation successful!"); });
})
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">
...@@ -106,12 +107,19 @@ ...@@ -106,12 +107,19 @@
</div> </div>
</div> </div>
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" data-backdrop="static" data-keyboard="false">
<div id="notification_window" > <div class="modal-dialog modal-sm" role="document">
</div> <div class="modal-content">
<div class="modal-header">
<div id ="testo"></div> <h4 class="modal-title" id="myModalLabel">Account Request Received!</h4>
</body> </div>
<div class="modal-body">
<span>Please wait while we create your account. This may take up to 5-10 minutes.</span>
<img src="{{ url_for('static', filename='img/loading.gif') }}" width="40px">
</div>
</div>
</div>
</div>
<footer> <footer>
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
...@@ -122,6 +130,6 @@ ...@@ -122,6 +130,6 @@
</div> </div>
</div> </div>
</div><!-- /.container --> </div><!-- /.container -->
</footer> </footer>
</body>
</html> </html>
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
import os import os
import time import time
import signal
import tasks import tasks
import vars
from flask import session from flask import session
from flask_socketio import SocketIO, join_room from flask_socketio import SocketIO, join_room
...@@ -15,28 +15,31 @@ monkey.patch_all(subprocess=True) ...@@ -15,28 +15,31 @@ monkey.patch_all(subprocess=True)
config_name = os.getenv('FLASK_CONFIG') config_name = os.getenv('FLASK_CONFIG')
app = create_app(config_name) app = create_app(config_name)
app.config['SECRET_KEY'] = 'vnkdjnfjknfl1232#' app.config['SECRET_KEY'] = vars.key
socketio = SocketIO(app, message_queue='amqp://reggie:reggie@ohpc:5672/socketio') socketio = SocketIO(app, message_queue= vars.message_queue)
@socketio.on('connect') @socketio.on('connect')
def socket_connect(): def socket_connect():
pass pass
@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')
def request_account(json, methods=['GET', 'POST']): def request_account(json, methods=['GET', 'POST']):
print (time.strftime("%m-%d-%Y_%H:%M:%S") + '\tQueue request received: ' + str(json)) print (time.strftime("%m-%d-%Y_%H:%M:%S") + '\tQueue request received: ' + str(json))
sid = str(session['uid']) room = str(session['uid'])
print("Room: {}".format(sid)) print("Room: {}".format(room))
try: 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: except Exception as e:
print(time.strftime("%m-%d-%Y_%H:%M:%S") + "\tError in account creation: ", e) print(time.strftime("%m-%d-%Y_%H:%M:%S") + "\tError in account creation: ", e)
socketio.emit("Account creation failed", room) socketio.emit("Account creation failed", room)
......
...@@ -2,19 +2,22 @@ from celery import Celery ...@@ -2,19 +2,22 @@ from celery import Celery
import time import time
from flask_socketio import SocketIO from flask_socketio import SocketIO
import subprocess import subprocess
import vars
from gevent import monkey from gevent import monkey
monkey.patch_all(subprocess=True) monkey.patch_all(subprocess=True)
broker_url = 'amqp://reggie:reggie@ohpc:5672/' broker_url = vars.broker_url
celery = Celery('flask_user_reg', broker=broker_url) celery = Celery('flask_user_reg', broker=broker_url)
socketio = SocketIO(message_queue='amqp://reggie:reggie@ohpc:5672/socketio') 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
......
id = ''
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"