fix: sync tenant entry menu casbin rules

This commit is contained in:
richjohnrambo
2026-09-23 00:07:20 +08:00
parent 603e89e204
commit 4fbc896d75
@@ -122,6 +122,24 @@ JOIN `hg_admin_menu` menu ON menu.`name` IN ('imTenantApplicationIndex', 'imTena
LEFT JOIN `hg_admin_role_menu` existing ON existing.`role_id`=rm.`role_id` AND existing.`menu_id`=menu.`id`
WHERE rm.`menu_id`=@settingsId AND existing.`menu_id` IS NULL;
DELETE FROM `hg_admin_role_casbin`
WHERE `v1` IN ('/imTenantApplication/list', '/imTenantApplication/view', '/imTenantEntryFeedback/list', '/imTenantEntryFeedback/view')
AND `v2` <> 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD';
INSERT INTO `hg_admin_role_casbin` (`p_type`, `v0`, `v1`, `v2`, `v3`, `v4`, `v5`)
SELECT 'p', role.`key`, menu.`permissions`, 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''
FROM `hg_admin_role_menu` rm
JOIN `hg_admin_role` role ON role.`id` = rm.`role_id`
JOIN `hg_admin_menu` menu ON menu.`id` = rm.`menu_id`
LEFT JOIN `hg_admin_role_casbin` existing ON existing.`p_type`='p'
AND existing.`v0`=role.`key`
AND existing.`v1`=menu.`permissions`
AND existing.`v2`='GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD'
WHERE role.`status`=1
AND menu.`status`=1
AND menu.`permissions` IN ('/imTenantApplication/list', '/imTenantApplication/view', '/imTenantEntryFeedback/list', '/imTenantEntryFeedback/view')
AND existing.`id` IS NULL;
-- Remove one-page wrapper directories after their page has been moved.
UPDATE `hg_admin_menu` SET `status`=2, `hidden`=1, `updated_at`=@now
WHERE `name` IN ('imUser', 'imGroup', 'imTenant', 'imRealname', 'imWorkOrder', 'imAuditLog', 'imOutbox');