Browse Source

修改注册跟创建

zs 11 months ago
parent
commit
1c2c22aad7
2 changed files with 50 additions and 44 deletions
  1. 32 30
      src/service/log/opera.service.ts
  2. 18 14
      src/service/system/role.service.ts

+ 32 - 30
src/service/log/opera.service.ts

@@ -28,36 +28,38 @@ export class OperaService {
    * @param new_data 新数据
    */
   async toMakeLogs(origin_data?: object, new_data?: object) {
-    const req = this.ctx.request;
     const user = this.ctx.user;
-    const logInfo: any = {
-      // 操作人
-      operator_id: user.id,
-      operator_name: get(user, 'nick_name', get(user, 'name')),
-      // ip
-      ip: get(req, 'header.x-forwarded-for', req.ip),
-      // 设备
-      device: get(req, 'header.user-agent'),
-      // 操作时间
-      time: dayjs().format('YYYY-MM-DD HH:mm:ss'),
-      // 操作地址
-      referer: get(req, 'header.referer'),
-      // 请求地址uri
-      path: get(req, 'path'),
-      // 地址参数
-      params: get(req, 'params'),
-      // 请求参数
-      query: get(req, 'query'),
-      // 方法体参数
-      body: get(req, 'body'),
-      // 操作业务:可以通过路由注解的routerName来获取
-      opera: null,
-      // 变动值: 表:[数据] 需要自己组织
-      origin_data: origin_data,
-      new_data: new_data,
-    };
-    const routeInfo = await this.webRouterService.getMatchedRouterInfo(this.ctx.path, this.ctx.method);
-    if (routeInfo) logInfo.opera = get(routeInfo, 'routerName');
-    await this.model.insert(logInfo);
+    if (user && user.id) {
+      const req = this.ctx.request;
+      const logInfo: any = {
+        // 操作人
+        operator_id: user.id,
+        operator_name: get(user, 'nick_name', get(user, 'name')),
+        // ip
+        ip: get(req, 'header.x-forwarded-for', req.ip),
+        // 设备
+        device: get(req, 'header.user-agent'),
+        // 操作时间
+        time: dayjs().format('YYYY-MM-DD HH:mm:ss'),
+        // 操作地址
+        referer: get(req, 'header.referer'),
+        // 请求地址uri
+        path: get(req, 'path'),
+        // 地址参数
+        params: get(req, 'params'),
+        // 请求参数
+        query: get(req, 'query'),
+        // 方法体参数
+        body: get(req, 'body'),
+        // 操作业务:可以通过路由注解的routerName来获取
+        opera: null,
+        // 变动值: 表:[数据] 需要自己组织
+        origin_data: origin_data,
+        new_data: new_data,
+      };
+      const routeInfo = await this.webRouterService.getMatchedRouterInfo(this.ctx.path, this.ctx.method);
+      if (routeInfo) logInfo.opera = get(routeInfo, 'routerName');
+      await this.model.insert(logInfo);
+    }
   }
 }

+ 18 - 14
src/service/system/role.service.ts

@@ -27,10 +27,12 @@ export class RoleService extends BaseService<Role> {
   //是否是超级管理员
   async isSuperAdmin() {
     const user = this.ctx.user;
-    const qb: QueryOpera[] = [{ column: 'id', value: user.id, opera: [Opera.Equal] }];
-    const admin = await this.adminService.fetch(qb);
-    if (!admin) return false;
-    if (admin.is_super === '0') return true;
+    if (user.role.includes('Admin')) {
+      const qb: QueryOpera[] = [{ column: 'id', value: user.id, opera: [Opera.Equal] }];
+      const admin = await this.adminService.fetch(qb);
+      if (!admin) return false;
+      if (admin.is_super === '0') return true;
+    } else return false;
   }
   /**
    * 获取用户接口权限编码列表
@@ -117,16 +119,18 @@ export class RoleService extends BaseService<Role> {
    * @returns 权限列表
    */
   async getDeptCodes(deptId: number) {
-    const qb: QueryOpera[] = [{ column: 'id', value: deptId, opera: [Opera.Equal] }];
-    const dept = await this.deptService.fetch(qb);
-    if (!dept) return [];
-    // 处理部门有的权限
-    const resource = get(dept, 'resource', []);
-    // const result = resource.map(i => {
-    //   const arr = i.split('.');
-    //   return last(arr);
-    // });
-    return resource;
+    if (deptId) {
+      const qb: QueryOpera[] = [{ column: 'id', value: deptId, opera: [Opera.Equal] }];
+      const dept = await this.deptService.fetch(qb);
+      if (!dept) return [];
+      // 处理部门有的权限
+      const resource = get(dept, 'resource', []);
+      // const result = resource.map(i => {
+      //   const arr = i.split('.');
+      //   return last(arr);
+      // });
+      return resource;
+    } else return [];
   }
 
   /**