cosmo/backend/scripts/add_user_menus.sql

75 lines
2.2 KiB
SQL

-- 添加新菜单:个人信息 和 我的天体
-- 这两个菜单对普通用户也开放
-- 1. 添加"个人信息"菜单(普通用户可访问)
INSERT INTO menus (name, title, path, icon, parent_id, sort_order, is_active, roles)
VALUES (
'user-profile',
'个人信息',
'/admin/user-profile',
'users',
NULL,
15,
true,
ARRAY['user', 'admin']::varchar[]
)
ON CONFLICT (name) DO UPDATE SET
title = EXCLUDED.title,
path = EXCLUDED.path,
icon = EXCLUDED.icon,
parent_id = EXCLUDED.parent_id,
sort_order = EXCLUDED.sort_order,
roles = EXCLUDED.roles;
-- 2. 添加"我的天体"菜单(普通用户可访问)
INSERT INTO menus (name, title, path, icon, parent_id, sort_order, is_active, roles)
VALUES (
'my-celestial-bodies',
'我的天体',
'/admin/my-celestial-bodies',
'planet',
NULL,
16,
true,
ARRAY['user', 'admin']::varchar[]
)
ON CONFLICT (name) DO UPDATE SET
title = EXCLUDED.title,
path = EXCLUDED.path,
icon = EXCLUDED.icon,
parent_id = EXCLUDED.parent_id,
sort_order = EXCLUDED.sort_order,
roles = EXCLUDED.roles;
-- 3. 添加"修改密码"菜单(普通用户和管理员都可访问)
-- 注意:修改密码功能通过用户下拉菜单访问,不需要在侧边栏显示
-- 但是我们仍然需要在数据库中记录这个菜单以便权限管理
INSERT INTO menus (name, title, path, icon, parent_id, sort_order, is_active, roles)
VALUES (
'change-password',
'修改密码',
'/admin/change-password',
'settings',
NULL,
17,
true,
ARRAY['user', 'admin']::varchar[]
)
ON CONFLICT (name) DO UPDATE SET
title = EXCLUDED.title,
path = EXCLUDED.path,
icon = EXCLUDED.icon,
parent_id = EXCLUDED.parent_id,
sort_order = EXCLUDED.sort_order,
roles = EXCLUDED.roles;
-- 4. 调整其他菜单的排序(可选)
-- 如果需要调整现有菜单的顺序,可以更新 sort_order
UPDATE menus SET sort_order = 18 WHERE name = 'settings' AND sort_order < 18;
-- 5. 查看更新后的菜单列表
SELECT id, name, title, path, icon, parent_id, sort_order, is_active, roles
FROM menus
WHERE is_active = true
ORDER BY sort_order;