20261008
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
/**
|
||||
* 添加操作日志
|
||||
*/
|
||||
|
||||
// 需要添加日志的云函数列表
|
||||
const urlList = [
|
||||
{ url: "admin/system/user/sys/add", title: "用户添加" },
|
||||
{ url: "admin/system/user/sys/update", title: "用户修改" },
|
||||
{ url: "admin/system/user/sys/delete", title: "用户删除" },
|
||||
{ url: "admin/system/user/sys/batchUpdateStatus", title: "批量修改用户冻结状态" }
|
||||
];
|
||||
|
||||
// 生成regExp规则
|
||||
let regExp = urlList.map((item, index) => {
|
||||
return `^${item.url}$`;
|
||||
});
|
||||
|
||||
module.exports = [{
|
||||
id: "addAdminLog",
|
||||
// 需要添加操作日志的云函数列表
|
||||
regExp,
|
||||
description: "添加admin操作日志",
|
||||
index: 999, // 确保最后执行即可
|
||||
mode: "onActionExecuted", // 可选 onActionExecuting onActionExecuted
|
||||
enable: true, // 通过设置enable=false可以关闭该中间件
|
||||
main: async function(event, serviceRes) {
|
||||
let { url, data = {}, uniIdToken, util, filterResponse, originalParam } = event;
|
||||
let { uniID, config, vk, db, _ } = util;
|
||||
let { userInfo = {} } = filterResponse;
|
||||
let res = serviceRes;
|
||||
try {
|
||||
// 此处加 try catch 保证即使添加日志环节出错,不影响业务运行。
|
||||
if (res.code === 0) {
|
||||
// 只有请求成功的请求才添加日志
|
||||
let item = vk.pubfn.getListItem(urlList, "url", url);
|
||||
let title = item && item.title ? item.title : "未分类";
|
||||
delete data.uid;
|
||||
// 日志写入数据库
|
||||
// 获取请求id(只有云端云函数才有请求id,本地运行的云函数无请求id)
|
||||
let request_id;
|
||||
if (typeof vk.pubfn.getUniCloudRequestId === "function") {
|
||||
request_id = vk.pubfn.getUniCloudRequestId();
|
||||
}
|
||||
await vk.baseDao.add({
|
||||
dbName: "opendb-admin-log",
|
||||
dataJson: {
|
||||
user_id: userInfo._id,
|
||||
user_name: userInfo.nickname,
|
||||
title,
|
||||
ip: originalParam.context.CLIENTIP,
|
||||
url: url,
|
||||
request_param: data,
|
||||
response: serviceRes,
|
||||
request_id
|
||||
}
|
||||
});
|
||||
}
|
||||
} catch (err) {
|
||||
console.error("添加日志异常", err);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
}]
|
||||
Reference in New Issue
Block a user