Browse Source

资料归集,动态概算,给管理员赋全权限

MaiXinRong 2 năm trước cách đây
mục cha
commit
a7a863246e
1 tập tin đã thay đổi với 27 bổ sung13 xóa
  1. 27 13
      app/service/sub_project.js

+ 27 - 13
app/service/sub_project.js

@@ -52,15 +52,22 @@ module.exports = app => {
         async getBudgetProject(pid, uid, admin) {
             let result = await this.getAllDataByCondition({ where: { project_id: pid, is_delete: 0 } });
 
-            const permission = await this.ctx.service.subProjPermission.getUserPermission(pid, uid);
+            const adminPermission = this.ctx.service.subProjPermission.adminPermission;
+            const permission = admin ? [] : await this.ctx.service.subProjPermission.getUserPermission(pid, uid);
             result = result.filter(x => {
                 if (!x.is_folder && !x.budget_id) return false;
-                if (x.is_folder || admin) return true;
-                const pb = permission.find(y => { return x.id === y.spid});
-                if (!pb) return false;
-                x.permission = pb.budget_permission;
-                x.manage_permission = pb.manage_permission;
-                return x.permission.length > 0;
+                if (x.is_folder) return true;
+                if (admin) {
+                    x.permission = adminPermission.budget_permission;
+                    x.manage_permission = adminPermission.manage_permission;
+                    return true;
+                } else {
+                    const pb = permission.find(y => { return x.id === y.spid});
+                    if (!pb) return false;
+                    x.permission = pb.budget_permission;
+                    x.manage_permission = pb.manage_permission;
+                    return x.permission.length > 0;
+                }
             });
             return this._filterEmptyFolder(result);
         }
@@ -68,15 +75,22 @@ module.exports = app => {
         async getFileProject(pid, uid, admin) {
             let result = await this.getAllDataByCondition({ where: { project_id: pid, is_delete: 0 } });
 
+            const adminPermission = this.ctx.service.subProjPermission.adminPermission;
             const permission = await this.ctx.service.subProjPermission.getUserPermission(pid, uid);
             result = result.filter(x => {
                 if (!x.is_folder && !x.management) return false;
-                if (x.is_folder || admin) return true;
-                const pb = permission.find(y => { return x.id === y.spid});
-                if (!pb) return false;
-                x.permission = pb.file_permission;
-                x.manage_permission = pb.manage_permission;
-                return x.permission.length > 0;
+                if (x.is_folder) true;
+                if (admin) {
+                    x.permission = adminPermission.file_permission;
+                    x.manage_permission = adminPermission.manage_permission;
+                    return true;
+                } else {
+                    const pb = permission.find(y => { return x.id === y.spid});
+                    if (!pb) return false;
+                    x.permission = pb.file_permission;
+                    x.manage_permission = pb.manage_permission;
+                    return x.permission.length > 0;
+                }
             });
             return this._filterEmptyFolder(result);
         }