diff --git a/novalon-manage-api/manage-db/src/main/resources/db/migration/V12__Insert_user_role_data.sql b/novalon-manage-api/manage-db/src/main/resources/db/migration/V12__Insert_user_role_data.sql new file mode 100644 index 0000000..bf68b48 --- /dev/null +++ b/novalon-manage-api/manage-db/src/main/resources/db/migration/V12__Insert_user_role_data.sql @@ -0,0 +1,51 @@ +-- Novalon管理系统普通用户角色和数据 +-- 版本: V10 +-- 描述: 创建普通用户角色并分配权限 + +-- 插入普通用户角色 +INSERT INTO sys_role (role_name, role_key, role_sort, status, create_by, update_by) +VALUES ('普通用户', 'user', 2, 1, 'system', 'system') +ON CONFLICT (role_key) DO UPDATE SET + role_name = EXCLUDED.role_name, + role_sort = EXCLUDED.role_sort, + status = EXCLUDED.status; + +-- 为普通用户分配基本权限(查看个人信息、修改密码等) +-- 注意:这里只分配基本权限,不包含管理功能权限 +INSERT INTO sys_permission (permission_name, permission_key, permission_type, parent_id, path, component, icon, sort, status, create_by, update_by) +VALUES +('个人中心', 'profile', 'MENU', 0, '/profile', 'views/profile/index', 'user', 1, 1, 'system', 'system'), +('个人信息', 'profile:info', 'BUTTON', (SELECT id FROM sys_permission WHERE permission_key = 'profile'), '', '', '', 1, 1, 'system', 'system'), +('修改密码', 'profile:password', 'BUTTON', (SELECT id FROM sys_permission WHERE permission_key = 'profile'), '', '', '', 2, 1, 'system', 'system') +ON CONFLICT (permission_key) DO NOTHING; + +-- 为普通用户角色分配权限 +INSERT INTO sys_role_permission (role_id, permission_id, create_by, update_by) +SELECT + r.id as role_id, + p.id as permission_id, + 'system' as create_by, + 'system' as update_by +FROM sys_role r +CROSS JOIN sys_permission p +WHERE r.role_key = 'user' + AND p.permission_key IN ('profile', 'profile:info', 'profile:password') +ON CONFLICT DO NOTHING; + +-- 将测试用户分配给普通用户角色 +INSERT INTO user_role (user_id, role_id, create_by, update_by) +SELECT + u.id as user_id, + r.id as role_id, + 'system' as create_by, + 'system' as update_by +FROM sys_user u +CROSS JOIN sys_role r +WHERE u.username = 'user' AND r.role_key = 'user' +ON CONFLICT DO NOTHING; + +-- 重置序列值 +SELECT setval('sys_role_id_seq', (SELECT COALESCE(MAX(id), 1) FROM sys_role)); +SELECT setval('sys_permission_id_seq', (SELECT COALESCE(MAX(id), 1) FROM sys_permission)); +SELECT setval('sys_role_permission_id_seq', (SELECT COALESCE(MAX(id), 1) FROM sys_role_permission)); +SELECT setval('user_role_id_seq', (SELECT COALESCE(MAX(id), 1) FROM user_role)); diff --git a/novalon-manage-api/manage-db/src/main/resources/db/migration/V13__Update_test_user_password.sql b/novalon-manage-api/manage-db/src/main/resources/db/migration/V13__Update_test_user_password.sql new file mode 100644 index 0000000..998c07b --- /dev/null +++ b/novalon-manage-api/manage-db/src/main/resources/db/migration/V13__Update_test_user_password.sql @@ -0,0 +1,46 @@ +-- Novalon管理系统测试数据脚本 +-- 版本: V11 +-- 描述: 更新测试用户密码为Test@123,插入E2E测试所需数据 + +-- 更新admin用户密码为Test@123 +-- BCrypt哈希值对应明文密码: Test@123 +UPDATE sys_user +SET password = '$2a$12$nZ1EMUpZQljbnEdIKzH72eHlDJKUmHmHppnTTVth/SlHs5VpSAr8C' +WHERE username = 'admin'; + +-- 更新user用户密码为Test@123 +UPDATE sys_user +SET password = '$2a$12$nZ1EMUpZQljbnEdIKzH72eHlDJKUmHmHppnTTVth/SlHs5VpSAr8C' +WHERE username = 'user'; + +-- 插入测试角色(如果不存在) +INSERT INTO sys_role (role_name, role_key, role_sort, status, create_by, update_by) +VALUES +('测试管理员', 'test_admin', 2, 1, 'system', 'system'), +('普通用户', 'normal_user', 3, 1, 'system', 'system'), +('访客', 'guest', 4, 1, 'system', 'system') +ON CONFLICT (role_key) DO NOTHING; + +-- 为admin用户分配超级管理员角色 +INSERT INTO user_role (user_id, role_id, created_by) +SELECT 1, id, 'system' FROM sys_role WHERE role_key = 'admin' +ON CONFLICT DO NOTHING; + +-- 为user用户分配普通用户角色 +INSERT INTO user_role (user_id, role_id, created_by) +SELECT 2, id, 'system' FROM sys_role WHERE role_key = 'normal_user' +ON CONFLICT DO NOTHING; + +-- 插入E2E测试专用用户 +-- BCrypt哈希值对应明文密码: Test@123 +INSERT INTO sys_user (id, username, password, email, phone, nickname, status, create_by, update_by) +VALUES +(10, 'e2e_test_user', '$2a$12$nZ1EMUpZQljbnEdIKzH72eHlDJKUmHmHppnTTVth/SlHs5VpSAr8C', 'e2e@test.com', '13900139000', 'E2E测试用户', 1, 'system', 'system') +ON CONFLICT (username) DO UPDATE SET + password = EXCLUDED.password, + status = EXCLUDED.status; + +-- 为E2E测试用户分配超级管理员角色 +INSERT INTO user_role (user_id, role_id, created_by) +SELECT 10, id, 'system' FROM sys_role WHERE role_key = 'admin' +ON CONFLICT DO NOTHING;