feat: migrate ORM base to sqlmodel-ext, add file viewers and WOPI integration
All checks were successful
Test / test (push) Successful in 1m45s
All checks were successful
Test / test (push) Successful in 1m45s
- Migrate SQLModel base classes, mixins, and database management to external sqlmodel-ext package; remove sqlmodels/base/, sqlmodels/mixin/, and sqlmodels/database.py - Add file viewer/editor system with WOPI protocol support for collaborative editing (OnlyOffice, Collabora) - Add enterprise edition license verification module (ee/) - Add Dockerfile multi-stage build with Cython compilation support - Add new dependencies: sqlmodel-ext, cryptography, whatthepatch Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
42
ee/__init__.py
Normal file
42
ee/__init__.py
Normal file
@@ -0,0 +1,42 @@
|
||||
"""
|
||||
DiskNext Enterprise Edition (EE) 模块
|
||||
|
||||
通过 ``try: from ee import init_ee`` 检测是否存在。
|
||||
CE 版本中此目录不存在,ImportError 被 main.py 捕获。
|
||||
"""
|
||||
from loguru import logger as l
|
||||
|
||||
from utils.conf import appmeta
|
||||
|
||||
_ee_initialized: bool = False
|
||||
|
||||
|
||||
def is_pro() -> bool:
|
||||
"""当前实例是否以 Pro 版本运行。"""
|
||||
return _ee_initialized
|
||||
|
||||
|
||||
async def init_ee() -> None:
|
||||
"""
|
||||
初始化企业版功能。
|
||||
|
||||
1. 加载并验证许可证
|
||||
2. 设置 appmeta.IsPro = True
|
||||
3. 标记 EE 已初始化
|
||||
|
||||
许可证无效或缺失时抛出异常,阻止应用启动。
|
||||
"""
|
||||
global _ee_initialized
|
||||
|
||||
from ee.service.license_service import load_and_validate_license
|
||||
|
||||
payload = await load_and_validate_license()
|
||||
|
||||
appmeta.IsPro = True
|
||||
_ee_initialized = True
|
||||
|
||||
l.info(
|
||||
f"Pro 版本已激活 — 域名: {payload.domain}, "
|
||||
f"过期: {payload.expires_at.isoformat()}, "
|
||||
f"功能: {payload.features}"
|
||||
)
|
||||
Reference in New Issue
Block a user