hr-system/sql/V002__init_permission.sql

64 lines
4.1 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- =====================================================================
-- 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');