"""Middleware for the API for handling tenant requests """ from flask_security import current_user from flask import session from ..models.user import User, Tenant from .database import Database from ..views.document_views import document_bp def mw_before_request(): """Before request switch tenant schema """ tenant_id = session['tenant']['id'] if not tenant_id: return {"message": "You are not logged into any tenant"}, 403 user = User.get_by_id(current_user.id) if user.has_roles(['Super User']) or user.tenant_id == tenant_id: Database(tenant_id).switch_schema() else: return {"message": "You are not a member of this tenant"}, 403