From 45a470d946040d187cf38495ecbedf6e6126307f Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Fri, 2 Oct 2020 02:33:21 -0500 Subject: [PATCH 01/14] replaced script call from flask_producer.py to create_account.py --- tasks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks.py b/tasks.py index 7deec3a..70b939d 100644 --- a/tasks.py +++ b/tasks.py @@ -24,6 +24,6 @@ def celery_create_account(username, fullname, reason, session): print(time.strftime("%m-%d-%Y_%H:%M:%S") + '\tUser ' + username + ' added to queue') send_msg('creating account', room) print(username) - subprocess.call(["/opt/rabbitmq_agents/flask_producer.py", "ohpc_account_create", username]) + subprocess.call(["/opt/rabbitmq_agents/create_account.py", username, email, fullname, reason]) print(time.strftime("%m-%d-%Y_%H:%M:%S") + '\tAccount successfully created for ' + username) send_msg('account ready', room) -- GitLab From 3cf58cc43e95e1295d12cd98ba89e240b5d95cfa Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Fri, 2 Oct 2020 02:40:38 -0500 Subject: [PATCH 02/14] Added Email input & passed it to flask app --- app/templates/auth/SignUp.html | 2 ++ run.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/templates/auth/SignUp.html b/app/templates/auth/SignUp.html index 891a09a..b49e9aa 100644 --- a/app/templates/auth/SignUp.html +++ b/app/templates/auth/SignUp.html @@ -92,6 +92,8 @@ <div class="signUpContainer"> <label><b><label for="username">Blazer Id: </label><br></b></label> <input class="form-control" id="bid" name="bid" placeholder="Enter BlazerId" required="" type="text"> + <label><b><label for="email">Email Id: </label><br></b></label> + <input class="form-control" id="email" name="email" placeholder="Enter Email Id" required="" type="text" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,3}$" > <label><b><label for="fullname">Full Name: </label><br></b></label> <input class="form-control" id="fullname" name="fullname" placeholder="Enter Full Name" required="" type="text"> <label><b><label for="reason">Reason for Requesting Account: </label><br></b></label> diff --git a/run.py b/run.py index ff6b025..3fa6d92 100644 --- a/run.py +++ b/run.py @@ -36,7 +36,7 @@ def request_account(json, methods=['GET', 'POST']): room = str(session['uid']) print("Room: {}".format(room)) try: - tasks.celery_create_account.delay(json['username'], json['fullname'], json['reason'], session=room) + tasks.celery_create_account.delay(json['username'], json['email'], json['fullname'], json['reason'], session=room) except Exception as e: print(time.strftime("%m-%d-%Y_%H:%M:%S") + "\tError in account creation: ", e) socketio.emit("Account creation failed", room) -- GitLab From dc1ce06d44d62b400c14d85bea2740350287fb6b Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Fri, 2 Oct 2020 02:41:54 -0500 Subject: [PATCH 03/14] removed alert message on acount creation --- app/templates/auth/SignUp.html | 1 - 1 file changed, 1 deletion(-) diff --git a/app/templates/auth/SignUp.html b/app/templates/auth/SignUp.html index b49e9aa..dd76883 100644 --- a/app/templates/auth/SignUp.html +++ b/app/templates/auth/SignUp.html @@ -22,7 +22,6 @@ socket.on( 'account ready', function( msg ) { $('#myModal').modal('hide'); - alert("Account has been created!"); window.location.replace('{{ referrer }}'); }); -- GitLab From 2edc9b9971f75dc1a2b19cdc50ff45c6d695c7d5 Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Fri, 2 Oct 2020 02:42:59 -0500 Subject: [PATCH 04/14] update default referrer value to point to dashboard --- vars.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vars.py b/vars.py index 8314f9d..8a3fc63 100644 --- a/vars.py +++ b/vars.py @@ -3,4 +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" +default_referrer = "/pun/sys/dashboard" -- GitLab From c3e552ec6cf08b16c84777d559f0cf9387febde9 Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Fri, 2 Oct 2020 02:47:14 -0500 Subject: [PATCH 05/14] pass user input as a json object from flask to celery --- run.py | 2 +- tasks.py | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/run.py b/run.py index 3fa6d92..1232ae6 100644 --- a/run.py +++ b/run.py @@ -36,7 +36,7 @@ def request_account(json, methods=['GET', 'POST']): room = str(session['uid']) print("Room: {}".format(room)) try: - tasks.celery_create_account.delay(json['username'], json['email'], json['fullname'], json['reason'], session=room) + tasks.celery_create_account.delay(json, session=room ) except Exception as e: print(time.strftime("%m-%d-%Y_%H:%M:%S") + "\tError in account creation: ", e) socketio.emit("Account creation failed", room) diff --git a/tasks.py b/tasks.py index 70b939d..f5fd7dc 100644 --- a/tasks.py +++ b/tasks.py @@ -19,8 +19,13 @@ def send_msg(event, room): @celery.task -def celery_create_account(username, fullname, reason, session): +def celery_create_account(json, session): room = session + username= json['username'] + email= json['email'] + fullname= json['fullname'] + reason= json['reason'] + print(time.strftime("%m-%d-%Y_%H:%M:%S") + '\tUser ' + username + ' added to queue') send_msg('creating account', room) print(username) -- GitLab From d63d8a808e841041652501303c0c610fd996b1e7 Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Fri, 2 Oct 2020 02:52:04 -0500 Subject: [PATCH 06/14] replaced subprocess call with direct call to script, added scripts from rabbitmq agents repo (https://github.com/uabrc/rabbitmq_agents) --- rc_rmq.py | 116 +++++++++++++++++++++++++++++++++++++++++++++++++++++ rc_util.py | 72 +++++++++++++++++++++++++++++++++ tasks.py | 4 +- 3 files changed, 191 insertions(+), 1 deletion(-) create mode 100644 rc_rmq.py create mode 100644 rc_util.py diff --git a/rc_rmq.py b/rc_rmq.py new file mode 100644 index 0000000..37afa3f --- /dev/null +++ b/rc_rmq.py @@ -0,0 +1,116 @@ +import json +import pika +import socket +import rabbit_config as rcfg + +class RCRMQ(object): + + USER = 'guest' + PASSWORD = 'guest' + HOST = 'localhost' + PORT = 5672 + VHOST = '/' + EXCHANGE = '' + EXCHANGE_TYPE = 'direct' + QUEUE = None + DURABLE = True + ROUTING_KEY = None + DEBUG = False + + def __init__(self, config=None, debug=False): + if config: + if 'exchange' in config: + self.EXCHANGE = config['exchange'] + if 'exchange_type' in config: + self.EXCHANGE_TYPE = config['exchange_type'] + + hostname = socket.gethostname().split(".", 1)[0] + + self.HOST = rcfg.Server if hostname != rcfg.Server else "localhost" + self.USER = rcfg.User + self.PASSWORD = rcfg.Password + self.VHOST = rcfg.VHost + self.PORT = rcfg.Port + self.DEBUG = debug + + if self.DEBUG: + print(""" + Created RabbitMQ instance with: + Exchange name: {}, + Exchange type: {}, + Host: {}, + User: {}, + VHost: {}, + Port: {} + """.format(self.EXCHANGE, self.EXCHANGE_TYPE, self.HOST, self.USER, self.VHOST, self.PORT)) + + self._consumer_tag = None + self._connection = None + self._consuming = False + self._channel = None + self._parameters = pika.ConnectionParameters( + self.HOST, + self.PORT, + self.VHOST, + pika.PlainCredentials(self.USER, self.PASSWORD)) + + def connect(self): + if self.DEBUG: + print("Connecting...\n" + "Exchange: " + self.EXCHANGE + " Exchange type: " + self.EXCHANGE_TYPE) + + self._connection = pika.BlockingConnection(self._parameters) + self._channel = self._connection.channel() + self._channel.exchange_declare( + exchange=self.EXCHANGE, + exchange_type=self.EXCHANGE_TYPE, + durable=True) + + def bind_queue(self): + self._channel.queue_declare(queue=self.QUEUE, durable=self.DURABLE) + self._channel.queue_bind(exchange=self.EXCHANGE, + queue=self.QUEUE, + routing_key=self.ROUTING_KEY) + + def disconnect(self): + self._channel.close() + self._connection.close() + self._connection = None + + def delete_queue(self): + self._channel.queue_delete(self.QUEUE) + + def publish_msg(self, obj): + if 'routing_key' in obj: + self.ROUTING_KEY = obj['routing_key'] + + if self._connection is None: + self.connect() + + self._channel.basic_publish(exchange=self.EXCHANGE, + routing_key=self.ROUTING_KEY, + body=json.dumps(obj['msg'])) + + def start_consume(self, obj): + if 'queue' in obj: + self.QUEUE = obj['queue'] + self.ROUTING_KEY = obj['routing_key'] if 'routing_key' in obj else self.QUEUE + if 'durable' in obj: + self.DURABLE = obj['durable'] + + if self.DEBUG: + print("Queue: " + self.QUEUE + "\nRouting_key: " + self.ROUTING_KEY) + + if self._connection is None: + self.connect() + + self.bind_queue() + + self._consumer_tag = self._channel.basic_consume(self.QUEUE,obj['cb']) + self._consuming = True + try: + self._channel.start_consuming() + except KeyboardInterrupt: + self._channel.stop_consuming() + + def stop_consume(self): + self._channel.basic_cancel(self._consumer_tag) diff --git a/rc_util.py b/rc_util.py new file mode 100644 index 0000000..0e7c4c1 --- /dev/null +++ b/rc_util.py @@ -0,0 +1,72 @@ +import logging +import argparse +from rc_rmq import RCRMQ +import json + +rc_rmq = RCRMQ({'exchange': 'RegUsr', 'exchange_type': 'topic'}) +tasks = {'ohpc_account': None, 'ood_account': None, 'slurm_account': None} +logger_fmt = '%(asctime)s [%(module)s] - %(message)s' + +def add_account(username, email, full='', reason=''): + rc_rmq.publish_msg({ + 'routing_key': 'request.' + username, + 'msg': { + "username": username, + "email": email, + "fullname": full, + "reason": reason + } + }) + rc_rmq.disconnect() + +def worker(ch, method, properties, body): + msg = json.loads(body) + task = msg['task'] + tasks[task] = msg['success'] + print("Got msg: {}({})".format(msg['task'], msg['success'])) + + # Check if all tasks are done + done = True + for key, status in tasks.items(): + if not status: + print("{} is not done yet.".format(key)) + done = False + if done: + rc_rmq.stop_consume() + rc_rmq.delete_queue() + +def consume(username, callback=worker, debug=False): + if debug: + sleep(5) + else: + rc_rmq.start_consume({ + 'queue': username, + 'routing_key': 'confirm.' + username, + 'cb': callback + }) + rc_rmq.disconnect() + + return { 'success' : True } + +def get_args(): + # Parse arguments + parser = argparse.ArgumentParser() + parser.add_argument('-v', '--verbose', action='store_true', help='verbose output') + parser.add_argument('-n', '--dry-run', action='store_true', help='enable dry run mode') + return parser.parse_args() + +def get_logger(args=None): + if args is None: + args = get_args() + + logger_lvl = logging.WARNING + + if args.verbose: + logger_lvl = logging.DEBUG + + if args.dry_run: + logger_lvl = logging.INFO + + logging.basicConfig(format=logger_fmt, level=logger_lvl) + return logging.getLogger(__name__) + diff --git a/tasks.py b/tasks.py index f5fd7dc..fe371fb 100644 --- a/tasks.py +++ b/tasks.py @@ -3,6 +3,7 @@ import time from flask_socketio import SocketIO import subprocess import vars +import rc_util from gevent import monkey monkey.patch_all(subprocess=True) @@ -29,6 +30,7 @@ def celery_create_account(json, session): print(time.strftime("%m-%d-%Y_%H:%M:%S") + '\tUser ' + username + ' added to queue') send_msg('creating account', room) print(username) - subprocess.call(["/opt/rabbitmq_agents/create_account.py", username, email, fullname, reason]) + rc_util.add_account(username, email, fullname, reason) + rc_util.consume(username) print(time.strftime("%m-%d-%Y_%H:%M:%S") + '\tAccount successfully created for ' + username) send_msg('account ready', room) -- GitLab From 304c663ba686cd144e898eef5de7bace7f38525f Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Fri, 2 Oct 2020 03:05:31 -0500 Subject: [PATCH 07/14] use email input to pass to flask from webpage --- app/static/scripts/function.js | 1 + 1 file changed, 1 insertion(+) diff --git a/app/static/scripts/function.js b/app/static/scripts/function.js index 694ff19..5a43908 100644 --- a/app/static/scripts/function.js +++ b/app/static/scripts/function.js @@ -5,6 +5,7 @@ function displayloading() { function request_account() { socket.emit('request account', { fullname: document.getElementById("fullname").value, + email: document.getElementById("email").value, reason: document.getElementById("reason").value, username: document.getElementById("bid").value }) -- GitLab From cf71a084437510e9292878b52d77bbbc6c624011 Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Fri, 2 Oct 2020 03:25:09 -0500 Subject: [PATCH 08/14] pre-populate user information in the form --- app/__init__.py | 26 +++++++++++++++++++++-- app/static/scripts/function.js | 21 +++++++++++++++++++ app/templates/auth/SignUp.html | 38 ++++++++++++++++++++-------------- vars.py | 5 ++++- 4 files changed, 72 insertions(+), 18 deletions(-) diff --git a/app/__init__.py b/app/__init__.py index c30a7f1..cc7518d 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -9,26 +9,48 @@ import uuid from flask import Flask, redirect, url_for, request, render_template, flash, session from flask_bootstrap import Bootstrap import random - +import os +import json def create_app(config_name): app = Flask(__name__) # initialization of the flask app Bootstrap(app) # allowing app to use bootstrap + def get_authorized_user(): + username_keys = list(filter(lambda key: (request.headers.get(key) is not None), vars.username_keys)) + fullname_keys = list(filter(lambda key: (request.headers.get(key) is not None), vars.fullname_keys)) + email_keys = list(filter(lambda key: (request.headers.get(key) is not None), vars.email_keys)) + + user = { + "username": (request.headers.get(username_keys[0]) if len(username_keys) > 0 else None), + "fullname": (request.headers.get(fullname_keys[0]) if len(fullname_keys) > 0 else None), + "email": (request.headers.get(email_keys[0]) if len(email_keys) > 0 else None), + } + + return user + @app.route('/', methods=['GET', 'POST']) # initial route to display the reg page def index(): if 'uid' not in session: session['uid']=str(uuid.uuid4()) + if 'user' not in session: + session["user"] = get_authorized_user() + if "redir" in request.args and 'return_url' not in session: # check for redir arg in url 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'], referrer=session['return_url']) + return render_template('auth/SignUp.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) + # misc page error catching @app.errorhandler(403) diff --git a/app/static/scripts/function.js b/app/static/scripts/function.js index 5a43908..974be2c 100644 --- a/app/static/scripts/function.js +++ b/app/static/scripts/function.js @@ -14,3 +14,24 @@ function request_account() { function refresh() { document.location.reload(true); } + +function autofill_form(username, fullname, email) { + let username_input = document.getElementById("username"); + let fullname_input = document.getElementById("fullname"); + let email_input = document.getElementById("email"); + + if ((username.localeCompare("None")) !== 0) { + username_input.value = username; + username_input.disabled = "true"; + } + + if ((fullname.localeCompare("None")) !== 0) { + fullname_input.value = fullname; + fullname_input.disabled = "true"; + } + + if ((email.localeCompare("None")) !== 0) { + email_input.value = email; + email_input.disabled = "true"; + } +} diff --git a/app/templates/auth/SignUp.html b/app/templates/auth/SignUp.html index dd76883..808555f 100644 --- a/app/templates/auth/SignUp.html +++ b/app/templates/auth/SignUp.html @@ -86,24 +86,32 @@ <!-- <h2>Hello, <span id="username">{{ user }}</span>!</h2> --> <h2>Hi, </h2> - <div id="test"> - <form action="." method="post" onsubmit=""> - <div class="signUpContainer"> - <label><b><label for="username">Blazer Id: </label><br></b></label> - <input class="form-control" id="bid" name="bid" placeholder="Enter BlazerId" required="" type="text"> - <label><b><label for="email">Email Id: </label><br></b></label> - <input class="form-control" id="email" name="email" placeholder="Enter Email Id" required="" type="text" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,3}$" > - <label><b><label for="fullname">Full Name: </label><br></b></label> - <input class="form-control" id="fullname" name="fullname" placeholder="Enter Full Name" required="" type="text"> - <label><b><label for="reason">Reason for Requesting Account: </label><br></b></label> - <textarea class="form-control" id="reason" name="reason" placeholder="Enter Reason for Account Request" required=""></textarea> - <input class="btn btn-primary btn-block" id="submit" name="submit" type="button" value="Submit" onclick="request_account()"> - - <div> + <div id="user-input"> + + <form id="signup" data-toggle="validator" role="form" action="." method="post" onsubmit=""> + <div class="form-group"> + <label for="username" class="control-label">Blazer Id:</label>	<input id="username" class="form-control" + placeholder="Enter Username" required><br> + </div> + <div class="form-group"> + <label for="fullname" class="control-label">Full Name:</label>	<input id="fullname" class="form-control" + placeholder="Enter Full Name" required><br> + </div> + <div class="form-group"> + <label for="email" class="control-label">Email:</label>	<input id="email" class="form-control" + placeholder="Enter Email" required><br> + </div> + <div class="form-group"> + <label for="reason" class="control-label">Reason for Requesting Account:</label><br> + <textarea class="form-control" id="reason" name="reason" placeholder="Enter Reason for Account Request" required></textarea> + </div> + + <input class="btn btn-primary btn-block" id="submit" name="submit" type="button" value="Submit" onclick="request_account()"> + + <div> <strong id="error" style="color: #be051b; text-align: center;"></strong> </div> - </div> </form> </div> </div> diff --git a/vars.py b/vars.py index 8a3fc63..d059ce0 100644 --- a/vars.py +++ b/vars.py @@ -3,4 +3,7 @@ password = '' key = '' broker_url = 'amqp://' + id + ':' + password + '@ohpc:5672/' message_queue = broker_url + 'socketio' -default_referrer = "/pun/sys/dashboard" +default_referrer = "/pun/sys/dashboard" +username_keys = ["Remote-User"] +fullname_keys = ["HTTP_DISPLAYNAME"] +email_keys = ["HTTP_MAIL"] -- GitLab From 3edb79021e0b27ac04769585b134b70ae2537a3b Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Fri, 2 Oct 2020 09:37:55 -0500 Subject: [PATCH 09/14] fixed typo in email variable name --- app/static/scripts/function.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/static/scripts/function.js b/app/static/scripts/function.js index 974be2c..d3ee135 100644 --- a/app/static/scripts/function.js +++ b/app/static/scripts/function.js @@ -7,7 +7,7 @@ function request_account() { fullname: document.getElementById("fullname").value, email: document.getElementById("email").value, reason: document.getElementById("reason").value, - username: document.getElementById("bid").value + username: document.getElementById("username").value }) } -- GitLab From 7ee1daedaf87f3c2375f44f59592d30add310fda Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Fri, 2 Oct 2020 09:44:16 -0500 Subject: [PATCH 10/14] calling autofill to prepopulate variables on webpage --- app/templates/auth/SignUp.html | 1 + 1 file changed, 1 insertion(+) diff --git a/app/templates/auth/SignUp.html b/app/templates/auth/SignUp.html index 808555f..1ada7d2 100644 --- a/app/templates/auth/SignUp.html +++ b/app/templates/auth/SignUp.html @@ -11,6 +11,7 @@ var socket = io.connect('http://' + document.domain + ':' + location.port); socket.on( 'connect', function() { + autofill_form("{{ username }}", "{{ fullname }}", "{{ email }}"); socket.emit( 'join_room', { referrer: '{{ referrer }}' }); -- GitLab From 98e5698949e925f11c4851493196140f84e90356 Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Fri, 2 Oct 2020 09:46:23 -0500 Subject: [PATCH 11/14] added rabbit_config.py --- rabbit_config.py | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 rabbit_config.py diff --git a/rabbit_config.py b/rabbit_config.py new file mode 100644 index 0000000..70081fc --- /dev/null +++ b/rabbit_config.py @@ -0,0 +1,6 @@ +Exchange = 'RegUsr' +User = 'reggie' +Password = 'reggie' +VHost = '/' +Server = 'ohpc' +Port = 5672 -- GitLab From 37098707ddb9a10a61b330c2a8e593d09aa0f2f5 Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Mon, 5 Oct 2020 08:08:18 -0500 Subject: [PATCH 12/14] changed variable to use REMOTE_USER instead of Remote-User value to avoid confusion with header decoding of basic auth --- vars.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vars.py b/vars.py index d059ce0..f123523 100644 --- a/vars.py +++ b/vars.py @@ -4,6 +4,6 @@ key = '' broker_url = 'amqp://' + id + ':' + password + '@ohpc:5672/' message_queue = broker_url + 'socketio' default_referrer = "/pun/sys/dashboard" -username_keys = ["Remote-User"] +username_keys = ["REMOTE_USER"] fullname_keys = ["HTTP_DISPLAYNAME"] email_keys = ["HTTP_MAIL"] -- GitLab From 92558c4cb861d0c89308c9f362539ddebe88b868 Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Mon, 5 Oct 2020 08:09:44 -0500 Subject: [PATCH 13/14] changed naming convention from keys to key --- vars.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vars.py b/vars.py index f123523..4124988 100644 --- a/vars.py +++ b/vars.py @@ -4,6 +4,6 @@ key = '' broker_url = 'amqp://' + id + ':' + password + '@ohpc:5672/' message_queue = broker_url + 'socketio' default_referrer = "/pun/sys/dashboard" -username_keys = ["REMOTE_USER"] -fullname_keys = ["HTTP_DISPLAYNAME"] -email_keys = ["HTTP_MAIL"] +username_key = ["REMOTE_USER"] +fullname_key = ["HTTP_DISPLAYNAME"] +email_key = ["HTTP_MAIL"] -- GitLab From 9f70012a9462b0c5254ee2405614b41db564ac10 Mon Sep 17 00:00:00 2001 From: Krish Moodbidri <krish94@uab.edu> Date: Tue, 6 Oct 2020 15:54:38 -0500 Subject: [PATCH 14/14] changed naming convention from keys to key --- app/__init__.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/__init__.py b/app/__init__.py index cc7518d..28010cd 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -17,14 +17,14 @@ def create_app(config_name): Bootstrap(app) # allowing app to use bootstrap def get_authorized_user(): - username_keys = list(filter(lambda key: (request.headers.get(key) is not None), vars.username_keys)) - fullname_keys = list(filter(lambda key: (request.headers.get(key) is not None), vars.fullname_keys)) - email_keys = list(filter(lambda key: (request.headers.get(key) is not None), vars.email_keys)) + username_key = list(filter(lambda key: (request.headers.get(key) is not None), vars.username_key)) + fullname_key = list(filter(lambda key: (request.headers.get(key) is not None), vars.fullname_key)) + email_key = list(filter(lambda key: (request.headers.get(key) is not None), vars.email_key)) user = { - "username": (request.headers.get(username_keys[0]) if len(username_keys) > 0 else None), - "fullname": (request.headers.get(fullname_keys[0]) if len(fullname_keys) > 0 else None), - "email": (request.headers.get(email_keys[0]) if len(email_keys) > 0 else None), + "username": (request.headers.get(username_key[0]) if len(username_key) > 0 else None), + "fullname": (request.headers.get(fullname_key[0]) if len(fullname_key) > 0 else None), + "email": (request.headers.get(email_key[0]) if len(email_key) > 0 else None), } return user -- GitLab