Skip to content
Snippets Groups Projects
Commit 91b50d6b authored by Krish Moodbidri's avatar Krish Moodbidri
Browse files

1. Reading eppa value from request header

2. Sending to error page of eppa not valid
parent 5f9c3f16
No related branches found
No related tags found
No related merge requests found
Pipeline #5795 canceled with stage
...@@ -12,6 +12,7 @@ from flask_bootstrap import Bootstrap ...@@ -12,6 +12,7 @@ from flask_bootstrap import Bootstrap
import random import random
import os import os
import json import json
import sys
def create_app(config_name): def create_app(config_name):
app = Flask(__name__, static_folder='static') # initialization of the flask app app = Flask(__name__, static_folder='static') # initialization of the flask app
...@@ -22,11 +23,13 @@ def create_app(config_name): ...@@ -22,11 +23,13 @@ def create_app(config_name):
username_key = list(filter(lambda key: (request.headers.get(key) is not None), vars.username_key)) 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)) 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)) email_key = list(filter(lambda key: (request.headers.get(key) is not None), vars.email_key))
eppa_key = list(filter(lambda key: (request.headers.get(key) is not None), vars.eppa_key))
user = { user = {
"username": (request.headers.get(username_key[0]) if len(username_key) > 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), "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), "email": (request.headers.get(email_key[0]) if len(email_key) > 0 else None),
"eppa": (request.headers.get(eppa_key[0]) if len(eppa_key) > 0 else None),
} }
return user return user
...@@ -34,6 +37,7 @@ def create_app(config_name): ...@@ -34,6 +37,7 @@ def create_app(config_name):
@app.route('/', methods=['GET', 'POST']) # initial route to display the reg page @app.route('/', methods=['GET', 'POST']) # initial route to display the reg page
def index(): def index():
valid_eppa = ["staff", "faculty", "student"]
invalid_state = ["blocked", "certification"] invalid_state = ["blocked", "certification"]
if 'uid' not in session: if 'uid' not in session:
...@@ -42,16 +46,14 @@ def create_app(config_name): ...@@ -42,16 +46,14 @@ def create_app(config_name):
if 'user' not in session: if 'user' not in session:
session["user"] = get_authorized_user() 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', vars.default_referrer)
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 if session['user'].get('eppa') in not valid_eppa:
else: return render_template('errors/error.html', title='shibboleth error')
session['return_url'] = request.referrer
if rc_util.check_state(session['user'].get('username')) in invalid_state: if rc_util.check_state(session['user'].get('username')) in invalid_state:
return render_template('errors/error.html', title='account creation failed') return render_template('errors/error.html', title='account state error')
else: else:
return render_template('auth/SignUp.html', room_id=session['uid'], return render_template('auth/SignUp.html', room_id=session['uid'],
...@@ -62,6 +64,8 @@ def create_app(config_name): ...@@ -62,6 +64,8 @@ def create_app(config_name):
cancel_msg=messages.cancel_message, cancel_msg=messages.cancel_message,
error_msg=messages.error_message) error_msg=messages.error_message)
@app.route('/error_account') @app.route('/error_account')
def error_account_create(): def error_account_create():
return render_template('errors/error.html', title='account creation failed') return render_template('errors/error.html', title='account creation failed')
......
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