mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 17:30:23 +08:00
feat: 实现功能模块系统,支持模块的动态注册与启用控制
- 新增 ModuleRegistry 核心,支持模块注册、可用性检查和启用状态管理 - 新增模块管理 API(管理端和公共端),提供模块状态查询和启用控制 - 将 LDAP 功能迁移到模块系统,支持通过环境变量和数据库配置控制 - 前端新增模块管理页面和 store,支持模块启用/禁用操作 - 路由守卫集成模块状态检查,未激活模块的页面自动重定向 - 面包屑导航支持模块配置页面的层级显示 - Switch 组件新增 disabled 属性支持
This commit is contained in:
50
src/modules/ldap/__init__.py
Normal file
50
src/modules/ldap/__init__.py
Normal file
@@ -0,0 +1,50 @@
|
||||
"""
|
||||
LDAP 认证模块
|
||||
|
||||
提供 LDAP/Active Directory 用户认证支持
|
||||
"""
|
||||
|
||||
from src.core.modules.base import (
|
||||
ModuleCategory,
|
||||
ModuleDefinition,
|
||||
ModuleHealth,
|
||||
ModuleMetadata,
|
||||
)
|
||||
|
||||
|
||||
def _get_router():
|
||||
"""延迟导入路由(避免启动时加载重依赖)"""
|
||||
from src.api.admin.ldap import router
|
||||
|
||||
return router
|
||||
|
||||
|
||||
async def _health_check() -> ModuleHealth:
|
||||
"""健康检查 - 简化版,不依赖数据库连接"""
|
||||
# 健康检查在启动时调用,此时可能没有数据库会话
|
||||
# 返回 UNKNOWN 表示需要进一步检查
|
||||
return ModuleHealth.UNKNOWN
|
||||
|
||||
|
||||
# LDAP 模块定义
|
||||
ldap_module = ModuleDefinition(
|
||||
metadata=ModuleMetadata(
|
||||
name="ldap",
|
||||
display_name="LDAP 认证",
|
||||
description="支持通过 LDAP/Active Directory 进行用户认证",
|
||||
category=ModuleCategory.AUTH,
|
||||
# 可用性控制
|
||||
env_key="LDAP_AVAILABLE",
|
||||
default_available=True,
|
||||
required_packages=["ldap3"],
|
||||
# 路由配置(使用现有路由,不改变路径)
|
||||
api_prefix="/api/admin/ldap",
|
||||
# 前端配置
|
||||
admin_route="/admin/ldap",
|
||||
admin_menu_icon="Users",
|
||||
admin_menu_group="system",
|
||||
admin_menu_order=50,
|
||||
),
|
||||
router_factory=_get_router,
|
||||
health_check=_health_check,
|
||||
)
|
||||
Reference in New Issue
Block a user