feat: 实现功能模块系统,支持模块的动态注册与启用控制

- 新增 ModuleRegistry 核心,支持模块注册、可用性检查和启用状态管理
- 新增模块管理 API(管理端和公共端),提供模块状态查询和启用控制
- 将 LDAP 功能迁移到模块系统,支持通过环境变量和数据库配置控制
- 前端新增模块管理页面和 store,支持模块启用/禁用操作
- 路由守卫集成模块状态检查,未激活模块的页面自动重定向
- 面包屑导航支持模块配置页面的层级显示
- Switch 组件新增 disabled 属性支持
This commit is contained in:
fawney19
2026-01-16 16:14:12 +08:00
parent 50343d5459
commit 6c98816f9f
17 changed files with 1332 additions and 39 deletions

View File

@@ -130,7 +130,19 @@ class LDAPService:
def get_config_data(db: Session) -> Optional[Dict[str, Any]]:
"""
提前获取并解密配置,供线程池使用,避免跨线程共享 Session。
检查顺序:
1. LDAP 模块是否激活available && enabled
2. LDAP 配置是否启用
3. 绑定密码是否可解密
"""
# 检查 LDAP 模块是否激活
from src.core.modules import get_module_registry
registry = get_module_registry()
if not registry.is_active("ldap", db):
return None
config = LDAPService.get_config(db)
if not config or config.is_enabled is not True:
return None