Files
CJGIS_UAVPatrol/server/api/role/dataScope/function.js
❀ » Cato Sweeney. ❀ » Console@the.bb bb46cb3bcc *
2025-11-27 16:14:04 +08:00

76 lines
2.1 KiB
JavaScript

// 角色数据权限修改
// 对应字典:
//[
// {
// value: '0', // 本组织id
// label: '仅本人数据权限',
// },
// {
// value: '1', // 所有组织id
// label: '全部数据权限',
// },
// {
// value: '2', // 参数组织id
// label: '自定数据权限',
// },
// {
// value: '3', // 本组织id
// label: '本组织数据权限',
// },
// {
// value: '4', // 不存
// label: '本组织及以下数据权限',
// },
// ],
function main() {
// 验证用户权限
'use api/user/acl/excerpt.js'
const data = payload.get().body?.toObject();
// 更新role表
const query = `UPDATE sys_roles SET data_scope = ? WHERE role_id = ?`;
const res = SQL.exec('system_sql', query, data.dataScope, data.roleId);
let orgRes = true;
if (!res) {
return errMsg(507, '更新失败');
}
// 更新role_org表
let orgIds = [];
if (data.dataScope == '0') {
// 通过本组织id创建
} else if (data.dataScope == '1') {
// 查询所有组织id
orgIds = SQL.query('system_sql', 'SELECT organization_id FROM sys_organizations ');
} else if (data.dataScope == '2') {
// 参数组织id
orgIds = data.organizationIds;
} else if (data.dataScope == '3') {
// 通过本组织id创建
} else if (data.dataScope == '4') {
// 不存
orgIds = [];
}
// 删除旧数据
const delRes = SQL.exec('system_sql', 'DELETE FROM sys_role_organizations_rel WHERE role_id = ?', data.roleId);
if (orgIds.length) {
let insertStr = '';
let valueStrArr = [];
let valueArr = [];
for (i = 0; i < orgIds.length; i++) {
valueStrArr.push(`(?,?,?,?,?)`);
valueArr.push(ex.suid().base58(), data.roleId, orgIds[i], USER_INFO.user_id, USER_INFO.nickname);
}
insertStr += `INSERT INTO sys_role_organizations_rel (rule_id, role_id, organization_id, proprietor_id, proprietor_name) VALUES ${valueStrArr.join(',')};`;
orgRes = SQL.exec('system_sql', insertStr, ...valueArr);
}
if (orgRes) {
return okMsg(orgRes);
}
return errMsg(507, '更新失败');
}