forked from datawhale/whale-town-end
feat:实现管理员系统核心功能
- 添加管理员数据库管理控制器和服务 - 实现管理员操作日志记录系统 - 添加数据库异常处理过滤器 - 完善管理员权限验证和响应格式 - 添加全面的属性测试覆盖
This commit is contained in:
@@ -12,24 +12,69 @@
|
||||
* - 核心鉴权与密码策略由AdminCoreService提供
|
||||
*
|
||||
* 最近修改:
|
||||
* - 2026-01-08: 注释规范优化 - 修正import路径,创建缺失的控制器和服务文件 (修改者: moyin)
|
||||
* - 2026-01-07: 代码规范优化 - 修正文件命名规范,更新作者信息和修改记录
|
||||
*
|
||||
* @author moyin
|
||||
* @version 1.0.1
|
||||
* @version 1.0.2
|
||||
* @since 2025-12-19
|
||||
* @lastModified 2026-01-07
|
||||
* @lastModified 2026-01-08
|
||||
*/
|
||||
|
||||
import { Module } from '@nestjs/common';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { AdminCoreModule } from '../../core/admin_core/admin_core.module';
|
||||
import { LoggerModule } from '../../core/utils/logger/logger.module';
|
||||
import { UsersModule } from '../../core/db/users/users.module';
|
||||
import { UserProfilesModule } from '../../core/db/user_profiles/user_profiles.module';
|
||||
import { ZulipAccountsModule } from '../../core/db/zulip_accounts/zulip_accounts.module';
|
||||
import { AdminController } from './admin.controller';
|
||||
import { AdminService } from './admin.service';
|
||||
import { AdminDatabaseController } from './admin_database.controller';
|
||||
import { AdminOperationLogController } from './admin_operation_log.controller';
|
||||
import { DatabaseManagementService } from './database_management.service';
|
||||
import { AdminOperationLogService } from './admin_operation_log.service';
|
||||
import { AdminOperationLog } from './admin_operation_log.entity';
|
||||
import { AdminDatabaseExceptionFilter } from './admin_database_exception.filter';
|
||||
import { AdminOperationLogInterceptor } from './admin_operation_log.interceptor';
|
||||
|
||||
/**
|
||||
* 检查数据库配置是否完整
|
||||
*
|
||||
* @returns 是否配置了数据库
|
||||
*/
|
||||
function isDatabaseConfigured(): boolean {
|
||||
const requiredEnvVars = ['DB_HOST', 'DB_PORT', 'DB_USERNAME', 'DB_PASSWORD', 'DB_NAME'];
|
||||
return requiredEnvVars.every(varName => process.env[varName]);
|
||||
}
|
||||
|
||||
@Module({
|
||||
imports: [AdminCoreModule, LoggerModule],
|
||||
controllers: [AdminController],
|
||||
providers: [AdminService],
|
||||
exports: [AdminService], // 导出AdminService供其他模块使用
|
||||
imports: [
|
||||
AdminCoreModule,
|
||||
LoggerModule,
|
||||
UsersModule,
|
||||
// 根据数据库配置选择UserProfiles模块模式
|
||||
isDatabaseConfigured() ? UserProfilesModule.forDatabase() : UserProfilesModule.forMemory(),
|
||||
ZulipAccountsModule,
|
||||
// 注册AdminOperationLog实体
|
||||
TypeOrmModule.forFeature([AdminOperationLog])
|
||||
],
|
||||
controllers: [
|
||||
AdminController,
|
||||
AdminDatabaseController,
|
||||
AdminOperationLogController
|
||||
],
|
||||
providers: [
|
||||
AdminService,
|
||||
DatabaseManagementService,
|
||||
AdminOperationLogService,
|
||||
AdminDatabaseExceptionFilter,
|
||||
AdminOperationLogInterceptor
|
||||
],
|
||||
exports: [
|
||||
AdminService,
|
||||
DatabaseManagementService,
|
||||
AdminOperationLogService
|
||||
], // 导出服务供其他模块使用
|
||||
})
|
||||
export class AdminModule {}
|
||||
|
||||
Reference in New Issue
Block a user