diff --git a/eveai_app/__init__.py b/eveai_app/__init__.py index 37df35d..ff69824 100644 --- a/eveai_app/__init__.py +++ b/eveai_app/__init__.py @@ -2,6 +2,7 @@ import logging import os from flask import Flask from flask_security import SQLAlchemyUserDatastore +from flask_security.signals import user_authenticated from werkzeug.middleware.proxy_fix import ProxyFix import logging.config @@ -9,9 +10,7 @@ from .extensions import db, migrate, bootstrap, security, mail, login_manager from .models.user import User, Tenant, Role from .models.document import Document, DocumentLanguage, DocumentVersion from .logging_config import LOGGING -# from .context_processors import inject_user - -# Create app +from .utils.security import set_tenant_session_data def create_app(config_file=None): @@ -33,8 +32,7 @@ def create_app(config_file=None): # Setup Flask-Security-Too user_datastore = SQLAlchemyUserDatastore(db, User, Role) security.init_app(app, user_datastore) - - # app.context_processor(inject_user) + user_authenticated.connect(set_tenant_session_data, app) # Register Blueprints register_blueprints(app) @@ -45,13 +43,6 @@ def create_app(config_file=None): mail_logger.setLevel(logging.DEBUG) security_logger = logging.getLogger('flask_security') security_logger.setLevel(logging.DEBUG) - # with app.app_context(): - # mail.send_mail( - # subject="Dit is een debugging test", - # message="Die wordt enkel verzonden als de app in debug mode staat", - # from_email="eveai_super@flow-it.net", - # recipient_list=["eveai_super@flow-it.net"], - # ) # Register API register_api(app) diff --git a/eveai_app/context_processors.py b/eveai_app/context_processors.py deleted file mode 100644 index d696288..0000000 --- a/eveai_app/context_processors.py +++ /dev/null @@ -1,9 +0,0 @@ -from flask_security import current_user - - -# def inject_user(): -# if current_user: -# print("Injecting current_user: ", current_user) -# else: -# print("No user to inject") -# return {'current_user': current_user} diff --git a/eveai_app/templates/security/forgot_password_.html b/eveai_app/templates/security/forgot_password.html similarity index 100% rename from eveai_app/templates/security/forgot_password_.html rename to eveai_app/templates/security/forgot_password.html diff --git a/eveai_app/utils/security.py b/eveai_app/utils/security.py new file mode 100644 index 0000000..eef563f --- /dev/null +++ b/eveai_app/utils/security.py @@ -0,0 +1,8 @@ +from flask import session +from ..models.user import User, Tenant + + +# Definition of Trigger Handlers +def set_tenant_session_data(sender, user): + tenant = Tenant.query.filter_by(id=user.tenant_id).first() + session['tenant'] = tenant diff --git a/eveai_app/views/user_views.py b/eveai_app/views/user_views.py index 87e6f46..d5fa3c1 100644 --- a/eveai_app/views/user_views.py +++ b/eveai_app/views/user_views.py @@ -179,7 +179,8 @@ def select_tenant(): @roles_required('Super User') def handle_tenant_selection(): tenant_id = request.form['tenant_id'] - session['tenant_id'] = request.form['tenant_id'] + the_tenant = Tenant.query.get(tenant_id) + session['tenant'] = the_tenant action = request.form['action'] if action == 'view_users':