Files
java-template/ljwx-boot/patch_tenant_permissions.sql
T
brunoandClaude b5b93ac62b docs: 添加租户权限管理数据库补丁SQL
## 新增功能

### 🔧 数据库补丁SQL
- 创建 `patch_tenant_permissions.sql` 快速修复补丁
- 添加用户角色类型字典:admin、租户管理员、部门管理员、普通用户
- 添加组织类型字典:租户、部门、子部门分类
- 添加权限等级字典:系统级、租户级、部门级、个人级
- 添加操作类型字典:创建租户、创建部门、管理用户、查看数据

### 📋 数据字典完善
- 支持多租户权限分级控制的字典数据
- 包含中英文双语支持
- 提供前端渲染类型配置
- 支持权限可视化展示

### 🎯 解决问题
- 补充admin新增租户权限控制缺失的数据字典支持
- 为前端权限按钮显示提供字典数据基础
- 完善多租户架构的数据基础设施
- 支持权限等级和操作类型的标准化管理

### 📖 使用说明
- 执行补丁SQL前请备份数据库
- 根据实际ID生成策略调整字典ID值
- 执行后重启应用刷新字典缓存
- 支持扩展更多权限相关字典配置

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-08-14 17:25:46 +08:00

62 lines
4.7 KiB
SQL

-- ===============================================
-- 租户/部门权限管理补丁SQL
-- 功能: 为admin新增租户权限控制添加数据字典支持
-- 版本: v1.0.7
-- 日期: 2025-01-16
-- ===============================================
-- 1. 添加用户角色类型字典
INSERT INTO `sys_dict` (`id`, `name`, `code`, `type`, `sort`, `description`, `status`, `create_time`) VALUES
(1001, '用户角色类型', 'user_role_type', '1', 10, '用户角色分类字典', '1', NOW());
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `dict_code`, `value`, `zh_cn`, `en_us`, `type`, `sort`, `description`, `status`, `create_time`) VALUES
(10001, 1001, 'user_role_type', 'admin', '系统管理员', 'Administrator', 'error', 1, '系统最高权限管理员,可创建租户', '1', NOW()),
(10002, 1001, 'user_role_type', 'tenant_admin', '租户管理员', 'Tenant Admin', 'warning', 2, '租户管理员,可管理租户下所有资源', '1', NOW()),
(10003, 1001, 'user_role_type', 'dept_admin', '部门管理员', 'Department Admin', 'info', 3, '部门管理员,可管理部门下的用户和资源', '1', NOW()),
(10004, 1001, 'user_role_type', 'user', '普通用户', 'Normal User', 'success', 4, '普通用户,只能查看和使用基本功能', '1', NOW());
-- 2. 添加组织类型字典
INSERT INTO `sys_dict` (`id`, `name`, `code`, `type`, `sort`, `description`, `status`, `create_time`) VALUES
(1002, '组织类型', 'org_type', '1', 11, '组织架构类型字典', '1', NOW());
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `dict_code`, `value`, `zh_cn`, `en_us`, `type`, `sort`, `description`, `status`, `create_time`) VALUES
(10005, 1002, 'org_type', '1', '租户', 'Tenant', 'primary', 1, '顶级组织,多租户架构的租户', '1', NOW()),
(10006, 1002, 'org_type', '2', '部门', 'Department', 'info', 2, '租户下的部门组织', '1', NOW()),
(10007, 1002, 'org_type', '3', '子部门', 'Sub Department', 'default', 3, '部门下的子部门', '1', NOW());
-- 3. 添加权限等级字典
INSERT INTO `sys_dict` (`id`, `name`, `code`, `type`, `sort`, `description`, `status`, `create_time`) VALUES
(1003, '权限等级', 'permission_level', '1', 12, '系统权限等级分类', '1', NOW());
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `dict_code`, `value`, `zh_cn`, `en_us`, `type`, `sort`, `description`, `status`, `create_time`) VALUES
(10008, 1003, 'permission_level', '1', '系统级', 'System Level', 'error', 1, '系统级权限,可操作所有资源', '1', NOW()),
(10009, 1003, 'permission_level', '2', '租户级', 'Tenant Level', 'warning', 2, '租户级权限,可操作租户内资源', '1', NOW()),
(10010, 1003, 'permission_level', '3', '部门级', 'Department Level', 'info', 3, '部门级权限,可操作部门内资源', '1', NOW()),
(10011, 1003, 'permission_level', '4', '个人级', 'Personal Level', 'success', 4, '个人级权限,只能操作个人资源', '1', NOW());
-- 4. 添加操作类型字典
INSERT INTO `sys_dict` (`id`, `name`, `code`, `type`, `sort`, `description`, `status`, `create_time`) VALUES
(1004, '操作类型', 'operation_type', '1', 13, '系统操作类型字典', '1', NOW());
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `dict_code`, `value`, `zh_cn`, `en_us`, `type`, `sort`, `description`, `status`, `create_time`) VALUES
(10012, 1004, 'operation_type', 'create_tenant', '创建租户', 'Create Tenant', 'error', 1, '创建新租户,仅admin可操作', '1', NOW()),
(10013, 1004, 'operation_type', 'create_dept', '创建部门', 'Create Department', 'warning', 2, '在租户下创建部门', '1', NOW()),
(10014, 1004, 'operation_type', 'manage_user', '管理用户', 'Manage User', 'info', 3, '管理用户账号和权限', '1', NOW()),
(10015, 1004, 'operation_type', 'view_data', '查看数据', 'View Data', 'success', 4, '查看业务数据', '1', NOW());
-- 5. 更新现有组织表,增加组织类型字段(如果不存在)
-- 注意:这个操作需要根据实际表结构调整
-- ALTER TABLE `sys_org_units` ADD COLUMN `org_type` varchar(10) DEFAULT '2' COMMENT '组织类型(1:租户,2:部门,3:子部门)' AFTER `level`;
-- 6. 为现有组织数据设置类型(根据level判断)
-- UPDATE `sys_org_units` SET `org_type` = '1' WHERE `level` = 1 AND `parent_id` = 0;
-- UPDATE `sys_org_units` SET `org_type` = '2' WHERE `level` = 2;
-- UPDATE `sys_org_units` SET `org_type` = '3' WHERE `level` >= 3;
-- ===============================================
-- 执行说明:
-- 1. 在应用此补丁前,请备份现有数据库
-- 2. 根据实际sys_dict表的id生成策略调整id值
-- 3. 如需要修改组织表结构,请取消注释相关ALTER和UPDATE语句
-- 4. 执行后重启应用以刷新字典缓存
-- ===============================================