-- 采购申请「批量提交」按钮权限
|
-- 影响页面:ERP -> 采购管理 -> 采购申请
|
--
|
-- 背景:采购申请提交接口(PUT /erp/purchase-request/submit、/submit-batch)使用
|
-- 权限码 erp:purchase-request:submit,但 system_menu 中从未维护该权限按钮,
|
-- 导致前端工具栏「批量提交」按钮被权限过滤隐藏,普通角色调用接口会 403。
|
--
|
-- 本脚本幂等,可重复执行。执行后需清理权限缓存(重启后端或删除
|
-- redis 中的 permission_menu_ids:erp:purchase-request:submit 与相关 role_menu_ids:*),
|
-- 前端重新登录/刷新后生效。
|
|
-- 1. 补按钮菜单(挂在“采购申请”菜单下)
|
INSERT INTO system_menu (name, permission, type, sort, parent_id, status, icon, creator, updater)
|
SELECT '批量提交审批', 'erp:purchase-request:submit', 3, 9, p.id, 0, '#', '1', '1'
|
FROM system_menu p
|
WHERE p.component = 'erp/purchase/request/index'
|
AND p.type = 2
|
AND p.deleted = b'0'
|
AND NOT EXISTS (
|
SELECT 1 FROM system_menu m
|
WHERE m.permission = 'erp:purchase-request:submit' AND m.deleted = b'0'
|
);
|
|
-- 2. 授予已拥有“采购申请”菜单的角色
|
INSERT INTO system_role_menu (role_id, menu_id, creator, updater)
|
SELECT DISTINCT rm.role_id, m.id, '1', '1'
|
FROM system_role_menu rm
|
JOIN system_menu p ON p.component = 'erp/purchase/request/index' AND p.type = 2 AND p.deleted = b'0'
|
JOIN system_menu m ON m.permission = 'erp:purchase-request:submit' AND m.deleted = b'0'
|
WHERE rm.menu_id = p.id
|
AND rm.deleted = b'0'
|
AND NOT EXISTS (
|
SELECT 1 FROM system_role_menu x
|
WHERE x.role_id = rm.role_id AND x.menu_id = m.id AND x.deleted = b'0'
|
);
|