- Move embedding model settings from tenant to catalog - BUG: error processing configuration for chunking patterns in HTML_PROCESSOR - Removed eveai_chat from docker-files and nginx configuration, as it is now obsolete - BUG: error in Library Operations when creating a new default RAG library - BUG: Added public type in migration scripts - Removed SocketIO from all code and requirements.txt
43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
from flask import session, current_app
|
|
from sqlalchemy import and_
|
|
|
|
from common.models.user import Tenant
|
|
from common.models.entitlements import License
|
|
from common.utils.database import Database
|
|
from common.utils.eveai_exceptions import EveAITenantNotFound, EveAITenantInvalid, EveAINoActiveLicense
|
|
from datetime import datetime as dt, timezone as tz
|
|
|
|
|
|
# Definition of Trigger Handlers
|
|
def set_tenant_session_data(sender, user, **kwargs):
|
|
tenant = Tenant.query.filter_by(id=user.tenant_id).first()
|
|
session['tenant'] = tenant.to_dict()
|
|
session['default_language'] = tenant.default_language
|
|
session['default_llm_model'] = tenant.llm_model
|
|
|
|
|
|
def clear_tenant_session_data(sender, user, **kwargs):
|
|
session.pop('tenant', None)
|
|
session.pop('default_language', None)
|
|
session.pop('default_llm_model', None)
|
|
|
|
|
|
def is_valid_tenant(tenant_id):
|
|
if tenant_id == 1: # The 'root' tenant, is always valid
|
|
return True
|
|
tenant = Tenant.query.get(tenant_id)
|
|
Database(tenant).switch_schema()
|
|
if tenant is None:
|
|
raise EveAITenantNotFound()
|
|
elif tenant.type == 'Inactive':
|
|
raise EveAITenantInvalid(tenant_id)
|
|
else:
|
|
current_date = dt.now(tz=tz.utc).date()
|
|
active_license = (License.query.filter_by(tenant_id=tenant_id)
|
|
.filter(and_(License.start_date <= current_date,
|
|
License.end_date >= current_date))
|
|
.one_or_none())
|
|
if not active_license:
|
|
raise EveAINoActiveLicense(tenant_id)
|
|
|
|
return True |