diff --git a/app/__init__.py b/app/__init__.py index 7a3e0619adc844d665b12a44ab231245e2aa28a5..dffb23cf3c50424e70d77d173274de04b6cbd4d8 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -58,8 +58,13 @@ def create_app(config_name): return render_template('errors/blocked.html') elif rc_util.check_state(session['user'].get('username')) == "certification": - return render_template('errors/certification.html') - + return render_template('errors/certify.html', room_id=session['uid'], + username=session['user'].get('username'), + fullname=session['user'].get('fullname'), email=session['user'].get('email'), + referrer=session['return_url'], cancel_url=vars.default_referrer, + welcome_msg=messages.welcome_message, + cancel_msg=messages.cancel_message, + error_msg=messages.error_message) else: return render_template('auth/SignUp.html', room_id=session['uid'], username=session['user'].get('username'), diff --git a/app/static/scripts/function.js b/app/static/scripts/function.js index ae406d73e8eb8bcb12bab94c16088026b3ca4c0b..8848dae83c5dc8d75c3e78401fc230dc87e43dab 100644 --- a/app/static/scripts/function.js +++ b/app/static/scripts/function.js @@ -16,6 +16,14 @@ function request_account() { }) } +function certify_account() { + socket.emit('request certification', { + fullname: document.getElementById("fullname").value, + email: document.getElementById("email").value, + username: document.getElementById("username").value + }) +} + function renderDom(title, message, error_msg) { document.getElementById("form-wrapper").innerHTML = "<h3>" + title + "</h3><br>"; document.getElementById("form-wrapper").innerHTML += "<p>" + message + "</p><br>"; diff --git a/run.py b/run.py index f69a20825a47ab2d526807240273a5737a878ac5..d68af7680ea9fe04320aacde2022edf8cae3dae8 100644 --- a/run.py +++ b/run.py @@ -35,5 +35,16 @@ def request_account(json, methods=['GET', 'POST']): print(time.strftime("%m-%d-%Y_%H:%M:%S") + "\tError in account creation: ", e) socketio.emit("Account creation failed", room) +@socketio.on('request certification') +def certify_account(json, methods=['GET', 'POST']): + print (time.strftime("%m-%d-%Y_%H:%M:%S") + '\tQueue request received: ' + str(json)) + room = str(session['uid']) + print("CERTIFY Room: {}".format(room)) + try: + tasks.celery_certify_account(json, session=room ) + except Exception as e: + print(time.strftime("%m-%d-%Y_%H:%M:%S") + "\tError in account certification: ", e) + socketio.emit("Account certification failed", room) + if __name__ == '__main__': socketio.run(app, host='0.0.0.0') diff --git a/tasks.py b/tasks.py index acf38186af98bb565c808bbd72c59b32e9d12faf..5721e470dbfa34a61b51663f7a7179f61d02c025 100644 --- a/tasks.py +++ b/tasks.py @@ -59,4 +59,20 @@ def celery_create_account(json, session): rc_util.add_account(username, queuename, email, fullname, reason) print('sent account info') print('Waiting for completion...') - rc_util.consume(queuename, routing_key=f'complete.{queuename}', callback=gen_f(room)) + rc_util.consume(queuename, routing_key=f'complete.{queuename}', callback=gen_f(room)) + +@celery.task +def celery_certify_account(json, session): + room = session + username= json['username'] + email= json['email'] + fullname= json['fullname'] + queuename= rc_util.encode_name(username) + + print("CERTIFY : "+time.strftime("%m-%d-%Y_%H:%M:%S") + '\tUser ' + username + ' added to queue') + send_msg('certifying account', room) + print(username) + rc_util.update_state(username, 'ok') + print('sent account info') + print('Waiting for certification...') + send_msg('certified', room)