You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
2.7 KiB
97 lines
2.7 KiB
const formRules = require("../util/formRules.js");
|
|
module.exports = {
|
|
/**
|
|
* 修改权限
|
|
* @url admin/system/permission/sys/update 前端调用的url参数地址
|
|
* data 请求参数 说明
|
|
* @param {String} permission_id 权限Id,唯一标识
|
|
* @param {String} permission_name 权限名称,展示用
|
|
* @param {String} comment 备注
|
|
* @param {String} url 云函数路径
|
|
* @param {String} icon 图标
|
|
* @param {Number} sort 排序(越大越在前面)
|
|
* @param {String} parent_id 父级id
|
|
* @param {Boolean} enable 是否启用
|
|
* @param {Number} match_mode 0:完整路径 1:通配符 2:正则表达式
|
|
* @param {Number} curd_category 0:未分类 1:增 2:删 3:改 4:查 5:特殊
|
|
* @param {Number} level 0:未分类 1:子弹级 2:炸弹级 3:榴弹级 4:核弹级
|
|
* res 返回参数说明
|
|
* @param {Number} code 错误码,0表示成功
|
|
* @param {String} msg 详细信息
|
|
*/
|
|
main: async (event) => {
|
|
let { data = {}, userInfo, util, filterResponse, originalParam } = event;
|
|
let { customUtil, uniID, config, pubFun, vk, db, _ } = util;
|
|
let { uid } = data;
|
|
let res = { code: 0, msg: '' };
|
|
// 业务逻辑开始-----------------------------------------------------------
|
|
let {
|
|
permission_id,
|
|
permission_name,
|
|
comment,
|
|
url,
|
|
icon,
|
|
sort = 0,
|
|
parent_id,
|
|
enable = true,
|
|
match_mode = 0,
|
|
curd_category,
|
|
level
|
|
} = data;
|
|
// 参数合法校验开始-----------------------------------------------------------
|
|
let formRulesRes = await formRules.update(event);
|
|
if (formRulesRes.code !== 0) {
|
|
return formRulesRes;
|
|
}
|
|
// 参数合法校验结束-----------------------------------------------------------
|
|
let dbName = "uni-id-permissions";
|
|
let dataJson = {
|
|
permission_name,
|
|
comment,
|
|
url,
|
|
icon,
|
|
sort,
|
|
parent_id,
|
|
enable,
|
|
match_mode,
|
|
curd_category,
|
|
level
|
|
};
|
|
// 检测parent_id是否不存在
|
|
if (vk.pubfn.isNotNull(parent_id)) {
|
|
let num = await vk.baseDao.count({
|
|
dbName,
|
|
whereJson: {
|
|
permission_id: parent_id
|
|
}
|
|
});
|
|
if (num <= 0) {
|
|
return { code: -1, msg: `父标识【${parent_id}】不存在!` };
|
|
}
|
|
let info = await vk.baseDao.findByWhereJson({
|
|
dbName,
|
|
whereJson: {
|
|
permission_id
|
|
}
|
|
});
|
|
if (vk.pubfn.isNotNull(info) && info.permission_id === parent_id) {
|
|
return { code: -1, msg: `不可以设置自己为父级` };
|
|
}
|
|
} else {
|
|
dataJson["parent_id"] = _.remove();
|
|
}
|
|
if (url === "" || JSON.stringify(url) === '[""]') {
|
|
dataJson["url"] = _.remove();
|
|
}
|
|
// 执行数据库API请求
|
|
res.num = await vk.baseDao.update({
|
|
dbName,
|
|
whereJson: {
|
|
permission_id
|
|
},
|
|
dataJson
|
|
});
|
|
return res;
|
|
}
|
|
|
|
}
|