64 lines
4.1 KiB
SQL
64 lines
4.1 KiB
SQL
-- =====================================================================
|
||
-- hr-system 权限底座(T08 / F11)初始化 DDL + 种子数据
|
||
-- 依赖:rbac 基座已创建 sys_role / sys_user / sys_user_role /
|
||
-- sys_permission / sys_role_permission(路径级功能权限)
|
||
-- 本脚本仅补齐本模块专属表 sys_data_scope(如 T01 已建则跳过 DDL 段)
|
||
-- =====================================================================
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 1. sys_data_scope 双维度数据范围表(幂等:IF NOT EXISTS)
|
||
-- ---------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS sys_data_scope (
|
||
id VARCHAR(32) NOT NULL COMMENT '主键',
|
||
admin_user_id VARCHAR(32) NULL COMMENT '管理员用户(sys_user.id)',
|
||
scope_type VARCHAR(16) NULL COMMENT '范围类型(org/field/all)',
|
||
org_ids_json TEXT NULL COMMENT '组织维度(org_unit.id 列表, 含子树由服务端展开)',
|
||
field_ids_json TEXT NULL COMMENT '花名册字段维度(roster_field_def.id 白名单)',
|
||
remark TEXT NULL COMMENT '备注',
|
||
created_by VARCHAR(32) NULL COMMENT '创建人',
|
||
updated_by VARCHAR(32) NULL COMMENT '更新人',
|
||
created_at TIMESTAMP NULL COMMENT '创建时间',
|
||
updated_at TIMESTAMP NULL COMMENT '更新时间',
|
||
PRIMARY KEY (id),
|
||
INDEX idx_admin_user (admin_user_id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
||
COMMENT='数据范围配置(F11,双维度)';
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 2. 内置四角色(幂等:INSERT IGNORE,编码唯一)
|
||
-- ---------------------------------------------------------------------
|
||
INSERT IGNORE INTO sys_role (id, role_code, role_name, remark, created_by, created_at, updated_at) VALUES
|
||
('ROLE_EMPLOYEE', 'employee', '员工自助', '员工本人查看/修改个人档案、发起自助申请', 'system', NOW(), NOW()),
|
||
('ROLE_MANAGER', 'manager', '经理', '管理本部门员工、发起并审批本部门人事异动', 'system', NOW(), NOW()),
|
||
('ROLE_HR_ADMIN', 'hr_admin', 'HR管理员', '管理全公司人事业务,受数据范围约束', 'system', NOW(), NOW()),
|
||
('ROLE_SYS_ADMIN','sys_admin', '系统管理员', '系统配置、角色/管理员/数据范围/审计管理', 'system', NOW(), NOW());
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 3. 内置 admin 用户(密码由 rbac 初始化流程处理,此处仅建账号)
|
||
-- ---------------------------------------------------------------------
|
||
INSERT IGNORE INTO sys_user (id, username, real_name, password, status, created_at, updated_at) VALUES
|
||
('USER_ADMIN', 'admin', '系统管理员', '', 1, NOW(), NOW());
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 4. admin 绑定全部四角色(等价 sys_admin 全量权限)
|
||
-- ---------------------------------------------------------------------
|
||
INSERT IGNORE INTO sys_user_role (user_id, role_id) VALUES
|
||
('USER_ADMIN', 'ROLE_EMPLOYEE'),
|
||
('USER_ADMIN', 'ROLE_MANAGER'),
|
||
('USER_ADMIN', 'ROLE_HR_ADMIN'),
|
||
('USER_ADMIN', 'ROLE_SYS_ADMIN');
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 5. 权限底座基线权限点(rbac 路径级)
|
||
-- ---------------------------------------------------------------------
|
||
INSERT IGNORE INTO sys_permission (id, perm_code, perm_name, perm_path, created_at) VALUES
|
||
('PERM_ROLE_ADMIN', 'hr_system:role_admin', '角色权限配置', '/hr_system/role_admin', NOW()),
|
||
('PERM_DATA_SCOPE', 'hr_system:data_scope', '数据范围配置', '/hr_system/data_scope', NOW()),
|
||
('PERM_AUDIT_LOG', 'hr_system:audit_log', '操作日志查询', '/hr_system/audit_log', NOW());
|
||
|
||
-- 系统管理员获得权限底座全部权限点
|
||
INSERT IGNORE INTO sys_role_permission (role_id, perm_id) VALUES
|
||
('ROLE_SYS_ADMIN', 'PERM_ROLE_ADMIN'),
|
||
('ROLE_SYS_ADMIN', 'PERM_DATA_SCOPE'),
|
||
('ROLE_SYS_ADMIN', 'PERM_AUDIT_LOG');
|