diff --git a/server/storage/data/generate/im_menu_hierarchy.sql b/server/storage/data/generate/im_menu_hierarchy.sql index 09b4802..63e922d 100644 --- a/server/storage/data/generate/im_menu_hierarchy.sql +++ b/server/storage/data/generate/im_menu_hierarchy.sql @@ -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');