realise document upload - Part 1
This commit is contained in:
@@ -35,6 +35,7 @@ class Database:
|
||||
"""create new database schema, mostly used on tenant creation"""
|
||||
try:
|
||||
db.session.execute(CreateSchema(self.schema))
|
||||
db.session.execute(text(f"CREATE EXTENSION IF NOT EXISTS pgvector SCHEMA {self.schema}"))
|
||||
db.session.commit()
|
||||
except InternalError:
|
||||
db.session.rollback()
|
||||
|
||||
30
eveai_app/utils/middleware.py
Normal file
30
eveai_app/utils/middleware.py
Normal file
@@ -0,0 +1,30 @@
|
||||
"""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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user