From c226844a43516c5da18374242997c25ccf20235e Mon Sep 17 00:00:00 2001 From: Santiago Lamora Date: Tue, 28 Dec 2021 12:32:38 +0100 Subject: [PATCH] Encapsulate required app config on Devicehub --- ereuse_devicehub/config.py | 1 + ereuse_devicehub/devicehub.py | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/ereuse_devicehub/config.py b/ereuse_devicehub/config.py index 01a98292..d1f89896 100644 --- a/ereuse_devicehub/config.py +++ b/ereuse_devicehub/config.py @@ -35,6 +35,7 @@ class DevicehubConfig(Config): import_resource(metric_def), ),) PASSWORD_SCHEMES = {'pbkdf2_sha256'} # type: Set[str] + SECRET_KEY = config('SECRET_KEY') DB_USER = config('DB_USER', 'dhub') DB_PASSWORD = config('DB_PASSWORD', 'ereuse') DB_HOST = config('DB_HOST', 'localhost') diff --git a/ereuse_devicehub/devicehub.py b/ereuse_devicehub/devicehub.py index a15e484a..b4321e28 100644 --- a/ereuse_devicehub/devicehub.py +++ b/ereuse_devicehub/devicehub.py @@ -22,6 +22,11 @@ from ereuse_devicehub.resources.inventory import Inventory, InventoryDef from ereuse_devicehub.templating import Environment +from flask_login import LoginManager +from flask_wtf.csrf import CSRFProtect +from ereuse_devicehub.resources.user.models import User + + class Devicehub(Teal): test_client_class = Client Dummy = Dummy @@ -61,6 +66,20 @@ class Devicehub(Teal): inv.command('search')(self.regenerate_search) self.before_request(self._prepare_request) + self.configure_extensions() + + def configure_extensions(self): + # configure & enable CSRF of Flask-WTF + CSRFProtect(self) + + # configure Flask-Login + login_manager = LoginManager() + login_manager.init_app(self) + + @login_manager.user_loader + def load_user(user_id): + return User.query.get(user_id) + # noinspection PyMethodOverriding @click.option('--name', '-n', default='Test 1',