加销售数据权限控制
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
-- =============================================================
|
||||
-- 客户/供应商数据权限角色:
|
||||
-- 销售(sales) data_scope=5 仅本人:只看 sales_user_id/purchaser_user_id=自己 的数据
|
||||
-- 销售经理(sales_mgr) data_scope=3 本部门:看所属部门人员的客户/供应商
|
||||
-- 超级管理员(admin) data_scope=1 全部数据,不受限。
|
||||
-- 菜单授权:客户/供应商管理目录 + 客户管理 + 供应商管理 + 客户余额管理 + 查询/新增/修改/导出按钮
|
||||
-- 幂等:角色已存在则只更新 data_scope,菜单授权重复执行无副作用
|
||||
-- 2026-09-21
|
||||
-- =============================================================
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
INSERT INTO `sys_role`
|
||||
(`role_name`, `role_key`, `role_sort`, `data_scope`, `menu_check_strictly`, `dept_check_strictly`,
|
||||
`status`, `del_flag`, `create_by`, `create_time`, `remark`)
|
||||
SELECT '销售', 'sales', 10, '5', 1, 1, '0', '0', 'admin', NOW(), '仅本人数据:只能看自己负责的客户/供应商'
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `sys_role` WHERE `role_key` = 'sales' AND `del_flag` = '0');
|
||||
|
||||
INSERT INTO `sys_role`
|
||||
(`role_name`, `role_key`, `role_sort`, `data_scope`, `menu_check_strictly`, `dept_check_strictly`,
|
||||
`status`, `del_flag`, `create_by`, `create_time`, `remark`)
|
||||
SELECT '销售经理', 'sales_mgr', 11, '3', 1, 1, '0', '0', 'admin', NOW(), '本部门数据:可查看本部门销售负责的客户/供应商'
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `sys_role` WHERE `role_key` = 'sales_mgr' AND `del_flag` = '0');
|
||||
|
||||
-- 角色数据范围以本文件为准(重复执行可纠偏)
|
||||
UPDATE `sys_role` SET `data_scope` = '5' WHERE `role_key` = 'sales' AND `del_flag` = '0';
|
||||
UPDATE `sys_role` SET `data_scope` = '3' WHERE `role_key` = 'sales_mgr' AND `del_flag` = '0';
|
||||
|
||||
-- 菜单授权(2309 目录 / 2313 客户管理 / 2314 供应商管理 / 2422 客户余额管理 / 2424~2433 操作按钮)
|
||||
INSERT INTO `sys_role_menu` (`role_id`, `menu_id`)
|
||||
SELECT r.role_id, m.menu_id
|
||||
FROM `sys_role` r
|
||||
JOIN `sys_menu` m ON m.menu_id IN (2309, 2313, 2314, 2422, 2424, 2425, 2426, 2428, 2429, 2430, 2431, 2433)
|
||||
WHERE r.`role_key` IN ('sales', 'sales_mgr')
|
||||
AND r.`del_flag` = '0'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_role_menu` rm WHERE rm.role_id = r.role_id AND rm.menu_id = m.menu_id);
|
||||
Reference in New Issue
Block a user