Added tenant information to the session...
This commit is contained in:
@@ -2,6 +2,7 @@ import logging
|
|||||||
import os
|
import os
|
||||||
from flask import Flask
|
from flask import Flask
|
||||||
from flask_security import SQLAlchemyUserDatastore
|
from flask_security import SQLAlchemyUserDatastore
|
||||||
|
from flask_security.signals import user_authenticated
|
||||||
from werkzeug.middleware.proxy_fix import ProxyFix
|
from werkzeug.middleware.proxy_fix import ProxyFix
|
||||||
import logging.config
|
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.user import User, Tenant, Role
|
||||||
from .models.document import Document, DocumentLanguage, DocumentVersion
|
from .models.document import Document, DocumentLanguage, DocumentVersion
|
||||||
from .logging_config import LOGGING
|
from .logging_config import LOGGING
|
||||||
# from .context_processors import inject_user
|
from .utils.security import set_tenant_session_data
|
||||||
|
|
||||||
# Create app
|
|
||||||
|
|
||||||
|
|
||||||
def create_app(config_file=None):
|
def create_app(config_file=None):
|
||||||
@@ -33,8 +32,7 @@ def create_app(config_file=None):
|
|||||||
# Setup Flask-Security-Too
|
# Setup Flask-Security-Too
|
||||||
user_datastore = SQLAlchemyUserDatastore(db, User, Role)
|
user_datastore = SQLAlchemyUserDatastore(db, User, Role)
|
||||||
security.init_app(app, user_datastore)
|
security.init_app(app, user_datastore)
|
||||||
|
user_authenticated.connect(set_tenant_session_data, app)
|
||||||
# app.context_processor(inject_user)
|
|
||||||
|
|
||||||
# Register Blueprints
|
# Register Blueprints
|
||||||
register_blueprints(app)
|
register_blueprints(app)
|
||||||
@@ -45,13 +43,6 @@ def create_app(config_file=None):
|
|||||||
mail_logger.setLevel(logging.DEBUG)
|
mail_logger.setLevel(logging.DEBUG)
|
||||||
security_logger = logging.getLogger('flask_security')
|
security_logger = logging.getLogger('flask_security')
|
||||||
security_logger.setLevel(logging.DEBUG)
|
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
|
||||||
register_api(app)
|
register_api(app)
|
||||||
|
|||||||
@@ -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}
|
|
||||||
8
eveai_app/utils/security.py
Normal file
8
eveai_app/utils/security.py
Normal file
@@ -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
|
||||||
@@ -179,7 +179,8 @@ def select_tenant():
|
|||||||
@roles_required('Super User')
|
@roles_required('Super User')
|
||||||
def handle_tenant_selection():
|
def handle_tenant_selection():
|
||||||
tenant_id = request.form['tenant_id']
|
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']
|
action = request.form['action']
|
||||||
|
|
||||||
if action == 'view_users':
|
if action == 'view_users':
|
||||||
|
|||||||
Reference in New Issue
Block a user