Browse Source

修复游客bug

laiguoran 4 years ago
parent
commit
1b73b16777

+ 5 - 3
app/controller/ledger_controller.js

@@ -62,7 +62,7 @@ module.exports = app => {
             const isUser = tender.user_id === this.ctx.session.sessionUser.accountId;
             const auditorsId = this.ctx.helper._.map(auditors, 'audit_id');
             const isAuditor  = auditorsId.indexOf(this.ctx.session.sessionUser.accountId) >= 0;
-            const upPermission = this.ctx.session.sessionUser.permission
+            const upPermission = this.ctx.session.sessionUser.permission && this.ctx.session.sessionUser.permission.tender
                 ? this.ctx.session.sessionUser.permission.tender.indexOf('3') >= 0
                 : false;
             return ((tender.ledger_status === auditConst.status.uncheck || tender.ledger_status === auditConst.status.checkNo) && isUser) ||
@@ -133,7 +133,7 @@ module.exports = app => {
                 const times = tender.data.ledger_status === auditConst.status.checkNo ? tender.data.ledger_times - 1 : tender.data.ledger_times;
 
                 const curAuditor = await ctx.service.ledgerAudit.getCurAuditor(tender.id, tender.data.ledger_times);
-                const auditors = tender.data.ledger_status === auditConst.status.checkNo && tender.data.user_id !== ctx.session.sessionUser.accountId ?
+                const auditors = tender.data.ledger_status === auditConst.status.checkNo && tender.data.user_id !== ctx.session.sessionUser.accountId && !ctx.tender.isTourist ?
                     await ctx.service.ledgerAudit.getAuditorsWithOwner(tender.id, times) :
                     await ctx.service.ledgerAudit.getAuditorsWithOwner(tender.id, tender.data.ledger_times);
                 const user = await ctx.service.projectAccount.getAccountInfoById(ctx.tender.data.user_id);
@@ -145,6 +145,7 @@ module.exports = app => {
                 }
                 const [stdBills, stdChapters] = await this.ctx.service.valuation.getValuationStdList(
                     ctx.tender.data.valuation, ctx.tender.data.measure_type);
+                console.log(tender.data, auditors);
                 const renderData = {
                     tender: tender.data,
                     tenderInfo: tender.info,
@@ -183,7 +184,8 @@ module.exports = app => {
             } catch (err) {
                 ctx.helper.log(err);
                 this.postError(err, '标段数据错误');
-                await this.redirect('/dashboard');
+                // await this.redirect('/dashboard');
+                ctx.redirect(ctx.request.header.referer);
             }
         }
 

+ 1 - 1
app/middleware/tender_check.js

@@ -63,7 +63,7 @@ module.exports = options => {
             const tenderPermission = this.session.sessionUser.permission ? this.session.sessionUser.permission.tender : null;
             const isTenderTourist = yield this.service.tenderTourist.getDataByCondition({ tid: tender.id, user_id: accountId });
             // 判断访问人是否具有游客身份
-            tender.isTourist = isTenderTourist;
+            tender.isTourist = isTenderTourist !== null;
             if (auditorsId.indexOf(accountId) === -1 && tender.data.user_id !== accountId &&
                 (tenderPermission === null || tenderPermission === undefined || tenderPermission.indexOf('2') === -1) &&
                 stageAuditorsId.indexOf(accountId) === -1 && changeAuditorsId.indexOf(accountId) === -1 &&

+ 2 - 2
app/middleware/uncheck_tender_check.js

@@ -23,9 +23,9 @@ module.exports = options => {
     return function* uncheckTenderCheck(next) {
         try {
             if (this.tender.data.ledger_status === auditConst.status.uncheck) {
-                if (this.tender.data.user_id !== this.session.sessionUser.accountId && !this.session.sessionUser.is_admin && this.tender.advanceAuditorsId.indexOf(this.session.sessionUser.accountId) === -1) {
+                if (this.tender.data.user_id !== this.session.sessionUser.accountId && !this.session.sessionUser.is_admin && this.tender.advanceAuditorsId.indexOf(this.session.sessionUser.accountId) === -1 && !this.tender.isTourist) {
                     throw '您无权查看该项目';
-                } else if (this.tender.advanceAuditorsId.indexOf(this.session.sessionUser.accountId) !== -1 && !this.session.sessionUser.is_admin) {
+                } else if (this.tender.advanceAuditorsId.indexOf(this.session.sessionUser.accountId) !== -1 && !this.session.sessionUser.is_admin && !this.tender.isTourist) {
                     throw '您无权查看该内容';
                 }
             }

+ 1 - 1
app/view/tender/detail_modal.ejs

@@ -1600,7 +1600,7 @@
             timer2 = setTimeout(() => {
                 const newVal = $(this).val();
                 let html = '';
-                if (newVal && newVal === oldSearchVal) {
+                if (newVal && newVal === oldSearchVal2) {
                     accountList.filter(item => item && item.id !== cur_tender_uid && (item.name.indexOf(newVal) !== -1 || (item.mobile && item.mobile.indexOf(newVal) !== -1))).forEach(item => {
                         html += `<dd class="border-bottom p-2 mb-0 " data-id="${item.id}" >
                         <p class="mb-0 d-flex"><span class="text-primary">${item.name}</span><span