diff options
-rw-r--r-- | accounts/__init__.py | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/accounts/__init__.py b/accounts/__init__.py index fabf0ec..08d52ba 100644 --- a/accounts/__init__.py +++ b/accounts/__init__.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- +import os from flask import Flask, g, session from models import Service @@ -9,10 +10,26 @@ from utils.login import create_login_manager from views import default, login, admin +def absolute_paths(app, config): + def handle_option(dirname, name): + if app.config.get(name): + app.config[name] = os.path.join(dirname, app.config[name]) + + dirname = os.path.dirname(config) + handle_option(dirname, 'USERNAME_BLACKLIST_FILE') + + +def load_config(app, configfile): + if configfile is not None: + filename = os.path.join(app.root_path, configfile) + app.config.from_pyfile(filename) + absolute_paths(app, filename) + + def create_app(): app = Flask(__name__) app.config.from_object('accounts.default_settings') - app.config.from_envvar('SPLINE_ACCOUNT_WEB_SETTINGS', silent=True) + load_config(app, os.environ.get('SPLINE_ACCOUNT_WEB_SETTINGS')) app.register_blueprint(default.bp) app.register_blueprint(login.bp) |