Просмотр исходного кода

♻️ refactor(middleware): 优化权限日志中间件类型定义

- 为日志对象添加类型断言,解决类型不匹配问题
- 将权限检查中间件从permissionWithAutoLog迁移到enhancedPermissionWithLog

♻️ refactor(logs): 简化操作日志服务接口

- 重构quickLog方法参数,使用Partial<OperationLog>类型替代冗长的对象定义
- 优化日志数据默认值处理,设置duration默认值为0,status默认值为'success'

🔧 chore(routes): 更新通用CRUD路由权限中间件引用

- 将权限检查中间件从permissionWithAutoLog替换为enhancedPermissionWithLog
yourname 7 месяцев назад
Родитель
Сommit
4072007e57

+ 2 - 2
src/server/middleware/enhanced-permission-log.middleware.ts

@@ -54,7 +54,7 @@ export function enhancedPermissionWithLog(requiredPermissions: string[]) {
           status: 'permission_denied',
           status: 'permission_denied',
           duration: 0,
           duration: 0,
           permissionRequired: requiredPermissions.join(', ')
           permissionRequired: requiredPermissions.join(', ')
-        });
+        } as any);
         
         
         return c.json({ message: '没有权限访问该资源', code: 403 }, 403);
         return c.json({ message: '没有权限访问该资源', code: 403 }, 403);
       }
       }
@@ -91,7 +91,7 @@ export function enhancedPermissionWithLog(requiredPermissions: string[]) {
         status: 'success',
         status: 'success',
         duration: 0,
         duration: 0,
         permissionRequired: requiredPermissions.join(', ')
         permissionRequired: requiredPermissions.join(', ')
-      });
+      } as any);
       
       
       try {
       try {
         // 继续执行后续处理
         // 继续执行后续处理

+ 7 - 20
src/server/modules/logs/operation-log.service.ts

@@ -10,26 +10,13 @@ export class OperationLogService extends GenericCrudService<OperationLog> {
   /**
   /**
    * 快速记录操作日志(简化版本)
    * 快速记录操作日志(简化版本)
    */
    */
-  async quickLog(data: {
-    requestId: string;
-    userId?: number;
-    username?: string;
-    resourceType: string;
-    resourceId?: string;
-    action: string;
-    method: string;
-    endpoint: string;
-    ipAddress?: string;
-    userAgent?: string;
-    status: 'success' | 'failed' | 'permission_denied';
-    duration?: number;
-    errorMessage?: string;
-    permissionRequired?: string;
-  }): Promise<OperationLog> {
-    return this.create({
-      ...data,
-      duration: data.duration || 0
-    });
+  async quickLog(data: Partial<OperationLog>): Promise<OperationLog> {
+    const logData: Partial<OperationLog> = {
+      duration: 0,
+      status: 'success',
+      ...data
+    };
+    return this.create(logData);
   }
   }
 
 
   /**
   /**

+ 2 - 2
src/server/utils/generic-crud.routes.ts

@@ -8,7 +8,7 @@ import { AppDataSource } from '../data-source';
 import { DataPermissionService } from '@/server/modules/permissions/data-permission.service';
 import { DataPermissionService } from '@/server/modules/permissions/data-permission.service';
 import { DepartmentService } from '@/server/modules/departments/department.service';
 import { DepartmentService } from '@/server/modules/departments/department.service';
 // import { checkPermission } from '../middleware/permission.middleware';
 // import { checkPermission } from '../middleware/permission.middleware';
-import { permissionWithAutoLog } from '../middleware/permission-auto-log.middleware';
+import { enhancedPermissionWithLog } from '../middleware/enhanced-permission-log.middleware';
 
 
 // 扩展的权限配置接口
 // 扩展的权限配置接口
 export interface CrudOptionsWithPermissions<
 export interface CrudOptionsWithPermissions<
@@ -59,7 +59,7 @@ export function createCrudRoutes<
     
     
     // 添加权限检查中间件(如果有配置)
     // 添加权限检查中间件(如果有配置)
     if (permissionType && permissionType.length > 0) {
     if (permissionType && permissionType.length > 0) {
-      result.push(permissionWithAutoLog(permissionType));
+      result.push(enhancedPermissionWithLog(permissionType));
     }
     }
     
     
     return result;
     return result;