'use strict'; /** * 检验是否为项目管理员中间件 * * @author CaiAoLin * @date 2018/1/23 * @version */ module.exports = app => { return function* projectManagerCheck(next) { const sessionProject = this.session.sessionProject; const sessionUser = this.session.sessionUser; try { if (sessionProject.userAccount === undefined) { throw '不存在对应项目数据'; } // 判断当前用户是否为管理员 if (sessionUser.account !== sessionProject.userAccount) { throw '当前用户没有权限'; } } catch (error) { this.session.message = { type: 'error', icon: 'exclamation-circle', message: error.toString(), }; return this.redirect(this.request.headers.referer); } yield next; }; };