# app/__init__.py # local imports from __future__ import print_function import vars # third-party imports 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_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_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 @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'], username=session['user'].get('username'), fullname=session['user'].get('fullname'), email=session['user'].get('email'), referrer=session['return_url'], cancel_url=vars.default_referrer) @app.route('/error') def error(): return 'ERROR: ' # misc page error catching @app.errorhandler(403) def forbidden(error): return render_template('errors/403.html', title='Forbidden'), 403 @app.errorhandler(404) def page_not_found(error): return render_template('errors/404.html', title='Page Not Found'), 404 @app.errorhandler(500) def internal_server_error(error): return render_template('errors/500.html', title='Server Error'), 500 return app