20261021-merchant-permissions.sql 1.4 KB

123456789101112131415
  1. -- Set the existing merchant-management parent menu ID before running.
  2. SET @merchant_parent = NULL;
  3. START TRANSACTION;
  4. INSERT INTO cms_menu (title,menu_name,perms,type,path,order_by,parent_id,created_time,update_time)
  5. SELECT p.title,p.perms,p.perms,'button','',p.sort_num,m.id,NOW(),NOW()
  6. FROM (SELECT '商户查询' title,'merchant:view' perms,1 sort_num UNION ALL SELECT '新增商户','merchant:add',2 UNION ALL SELECT '编辑商户和收款配置','merchant:edit',3 UNION ALL SELECT '删除商户配置','merchant:delete',4 UNION ALL SELECT '渠道商户切换','merchant:updateChannelShop',5) p
  7. JOIN cms_menu m ON m.id=@merchant_parent AND m.type<>'button'
  8. WHERE NOT EXISTS (SELECT 1 FROM cms_menu e WHERE e.perms=p.perms);
  9. INSERT INTO cms_role_menu (role_id,menu_id,created_time,update_time)
  10. SELECT r.id,m.id,NOW(),NOW() FROM cms_role r JOIN cms_menu m ON m.perms IN ('merchant:view','merchant:add','merchant:edit','merchant:delete','merchant:updateChannelShop')
  11. WHERE r.role_name='root' AND NOT EXISTS (SELECT 1 FROM cms_role_menu e WHERE e.role_id=r.id AND e.menu_id=m.id);
  12. COMMIT;
  13. SELECT p.perms,m.id,IF(m.id IS NULL,'MISSING','OK') result
  14. FROM (SELECT 'merchant:view' perms UNION ALL SELECT 'merchant:add' UNION ALL SELECT 'merchant:edit' UNION ALL SELECT 'merchant:delete' UNION ALL SELECT 'merchant:updateChannelShop') p LEFT JOIN cms_menu m ON m.perms=p.perms;
  15. -- All five rows must be OK. Assign other roles explicitly, refresh permissions and re-login.