Explorar el Código

fix: 清单模板库编办权限

vian hace 1 año
padre
commit
5ec5d350d7
Se han modificado 1 ficheros con 51 adiciones y 48 borrados
  1. 51 48
      modules/bills_template_lib/controllers/bills_template_controller.js

+ 51 - 48
modules/bills_template_lib/controllers/bills_template_controller.js

@@ -7,9 +7,10 @@
  */
 import BaseController from "../../common/base/base_controller";
 import billsTemplateFacade from "../facade/bills_template_facade";
-import {default as BillsFixedFlagConst, List as BillsFixedFlagList} from "../../common/const/bills_fixed.js";
-import {default as BillsTypeFlagConst, List as BillsTypeFlagList} from "../../common/const/bills_type.js";
+import { default as BillsFixedFlagConst, List as BillsFixedFlagList } from "../../common/const/bills_fixed.js";
+import { default as BillsTypeFlagConst, List as BillsTypeFlagList } from "../../common/const/bills_type.js";
 import CompilationModel from '../../users/models/compilation_model';
+import { checkCompilationPermission } from '../../common/base/base_util';
 let config = require("../../../config/config.js");
 let logger = require('../../../logs/log_helper').logger;
 
@@ -23,11 +24,13 @@ class BillsTemplateController extends BaseController {
      * @return {void}
      */
     async main(request, response) {
-        let filter = request.query.filter ? {compilationId: request.query.filter} : null;
+        let filter = request.query.filter ? { compilationId: request.query.filter } : null;
+        const compilationPermission = request.session.managerData.compilationPermission || [];
         let templateLibs = await billsTemplateFacade.getAllLibs(filter);
+        templateLibs = templateLibs.filter(lib => compilationPermission.includes(lib.compilationId));
         let compilationModel = new CompilationModel();
-        let compilationList = await compilationModel.getCompilationList({_id: 1, name: 1});
-        compilationList.unshift({_id: 'all', name: '所有'});
+        let compilationList = await compilationModel.getPermissionCompilationList(request, { _id: 1, name: 1 });
+        compilationList.unshift({ _id: 'all', name: '所有' });
         let activeCompilation = compilationList.find(compilation => compilation._id.toString() === request.query.filter);
         if (activeCompilation) {
             activeCompilation.active = 'active';
@@ -35,120 +38,120 @@ class BillsTemplateController extends BaseController {
             compilationList[0].active = 'active'
         }
         let randerData = {
-            title:'清单模板',
+            title: '清单模板',
             userAccount: request.session.managerData.username,
             userID: request.session.managerData.userID,
-            templateLibs:templateLibs,
+            templateLibs: templateLibs,
             compilationList: compilationList,
             layout: 'maintain/common/html/layout',
-            LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
+            LicenseKey: config.getLicenseKey(process.env.NODE_ENV)
         };
 
         response.render("maintain/bill_template_lib/html/main", randerData);
     }
     async updateBillsTemplateItem(request, response) {
         let libID = request.params.libID;
-        let result = {error: 1, message: '更新数据错误', data: null};
+        let result = { error: 1, message: '更新数据错误', data: null };
         try {
             let data = JSON.parse(request.body.data);
-            if(libID){
-                 result = await await billsTemplateFacade.updateTemplateItem(libID,data);
+            if (libID) {
+                result = await await billsTemplateFacade.updateTemplateItem(libID, data);
                 if (result) {
-                    result = {error: 0, message: '', data: data};
+                    result = { error: 0, message: '', data: data };
                 }
             }
 
-        }catch (err){
+        } catch (err) {
             console.log(err);
             result.message = err.message;
         }
         response.json(result);
     }
 
-    async editTemplate(request, response){
+    async editTemplate(request, response) {
 
         //先取出清单库信息:
         let libID = request.params.libID;
         let templateLib = await billsTemplateFacade.getLibByID(libID);
-        if(templateLib){
+        if (templateLib) {
 
+            checkCompilationPermission(request, response, templateLib.compilationId, '/billsTemplate/main');
             let templateDatas = await billsTemplateFacade.getTemplateDatasByLibID(libID);
-
             let randerData = {
-                title:'清单模板',
-                mainURL:'/billsTemplate/main',
-                libName:templateLib.name,
+                title: '清单模板',
+                mainURL: '/billsTemplate/main',
+                libName: templateLib.name,
                 userAccount: request.session.managerData.username,
                 userID: request.session.managerData.userID,
-                billsTemplateData:JSON.stringify(templateDatas),
+                billsTemplateData: JSON.stringify(templateDatas),
                 billsFixedFlagList: JSON.stringify(BillsFixedFlagList),
                 billsTypeFlagList: JSON.stringify(BillsTypeFlagList),
-                libID:libID,
-                LicenseKey:config.getLicenseKey(process.env.NODE_ENV),
+                libID: libID,
+                LicenseKey: config.getLicenseKey(process.env.NODE_ENV),
                 layout: 'maintain/common/html/edit_layout'
             };
             response.render("maintain/bill_template_lib/html/edit", randerData);
-        }else {
+        } else {
             response.redirect(request.headers.referer);
         }
     }
 
-    async deleteLibByID(request,response){
+    async deleteLibByID(request, response) {
         logger.info(`delete billsTemplateLib ${request.ip}`);
-        let result={
-            error:0
+        let result = {
+            error: 0
         };
         try {
             let data = request.body.data;
             data = JSON.parse(data);
-            let resultData= await billsTemplateFacade.deleteLibByID(data.ID);
-            result.data=resultData;
-        }catch (err){
+            let resultData = await billsTemplateFacade.deleteLibByID(data.ID);
+            result.data = resultData;
+        } catch (err) {
             console.log(err);
-            result.error=1;
+            result.error = 1;
             result.message = err.message;
         }
         response.json(result);
     }
 
-    async saveLib(request, response){
-        let result={
-            error:0
+    async saveLib(request, response) {
+        let result = {
+            error: 0
         };
         try {
             let data = request.body.data;
             data = JSON.parse(data);
-            let resultData= await billsTemplateFacade.saveLib(data);
-            result.data=resultData;
-        }catch (err){
+            let resultData = await billsTemplateFacade.saveLib(data);
+            result.data = resultData;
+        } catch (err) {
             console.log(err);
-            result.error=1;
+            result.error = 1;
             result.message = err.message;
         }
         response.json(result);
     }
 
-    async getLibByID(request, response){
-        let result={
-            error:0
+    async getLibByID(request, response) {
+        let result = {
+            error: 0
         };
         try {
             let data = request.body.data;
             data = JSON.parse(data);
-            let resultData= await billsTemplateFacade.getLibByID(data.libID);
-            result.data=resultData;
-        }catch (err){
+            let resultData = await billsTemplateFacade.getLibByID(data.libID);
+            result.data = resultData;
+        } catch (err) {
             console.log(err);
-            result.error=1;
+            result.error = 1;
             result.message = err.message;
         }
         response.json(result);
     }
 
-    async addLib(request, response){
+    async addLib(request, response) {
         try {
             await billsTemplateFacade.addLib(request.body);
-        }catch (error) {
+        } catch (error) {
             console.log(error);
         }
         response.redirect(request.headers.referer);
@@ -159,10 +162,10 @@ class BillsTemplateController extends BaseController {
             const data = JSON.parse(req.body.data);
             const userName = req.session.managerData.username;
             await billsTemplateFacade.copyLib(data.libID, data.name, userName);
-            res.json({error: 0, data: null, message: 'success'})
+            res.json({ error: 0, data: null, message: 'success' })
         } catch (err) {
             console.log(err);
-            res.json({error: 1, data: null, message: 'fail'});
+            res.json({ error: 1, data: null, message: 'fail' });
         }
     }
 }