From 4e4af652634616ef148def8e70880f1d292ea64e Mon Sep 17 00:00:00 2001 From: jack ning Date: Thu, 20 Mar 2025 13:44:41 +0800 Subject: [PATCH] update --- .../bytedesk/ai/robot/RobotInitializer.java | 5 +- .../rbac/authority/AuthorityInitializer.java | 97 +++++++------------ .../organization/OrganizationInitializer.java | 8 +- .../core/rbac/role/RoleInitializer.java | 18 +++- .../ticket/ticket/TicketInitializer.java | 16 +-- 5 files changed, 58 insertions(+), 86 deletions(-) diff --git a/modules/ai/src/main/java/com/bytedesk/ai/robot/RobotInitializer.java b/modules/ai/src/main/java/com/bytedesk/ai/robot/RobotInitializer.java index a29ab401e8..00078eaac7 100644 --- a/modules/ai/src/main/java/com/bytedesk/ai/robot/RobotInitializer.java +++ b/modules/ai/src/main/java/com/bytedesk/ai/robot/RobotInitializer.java @@ -2,7 +2,7 @@ * @Author: jackning 270580156@qq.com * @Date: 2024-11-05 13:43:02 * @LastEditors: jackning 270580156@qq.com - * @LastEditTime: 2025-03-20 13:29:58 + * @LastEditTime: 2025-03-20 13:31:19 * @Description: bytedesk.com https://github.com/Bytedesk/bytedesk * Please be aware of the BSL license restrictions before installing Bytedesk IM – * selling, reselling, or hosting Bytedesk IM as a service is a breach of the terms and automatically terminates your rights under the license. @@ -17,10 +17,7 @@ import org.springframework.beans.factory.SmartInitializingSingleton; import org.springframework.stereotype.Component; import com.bytedesk.core.constant.BytedeskConsts; -import com.bytedesk.core.constant.I18Consts; -import com.bytedesk.core.enums.LevelEnum; import com.bytedesk.core.enums.PermissionEnum; -import com.bytedesk.core.rbac.authority.AuthorityRequest; import com.bytedesk.core.rbac.authority.AuthorityRestService; import lombok.AllArgsConstructor; diff --git a/modules/core/src/main/java/com/bytedesk/core/rbac/authority/AuthorityInitializer.java b/modules/core/src/main/java/com/bytedesk/core/rbac/authority/AuthorityInitializer.java index 449cd11033..a0d8c9b8ea 100644 --- a/modules/core/src/main/java/com/bytedesk/core/rbac/authority/AuthorityInitializer.java +++ b/modules/core/src/main/java/com/bytedesk/core/rbac/authority/AuthorityInitializer.java @@ -2,7 +2,7 @@ * @Author: jackning 270580156@qq.com * @Date: 2024-11-05 07:05:25 * @LastEditors: jackning 270580156@qq.com - * @LastEditTime: 2025-03-20 13:27:58 + * @LastEditTime: 2025-03-20 13:42:40 * @Description: bytedesk.com https://github.com/Bytedesk/bytedesk * Please be aware of the BSL license restrictions before installing Bytedesk IM – * selling, reselling, or hosting Bytedesk IM as a service is a breach of the terms and automatically terminates your rights under the license. @@ -15,74 +15,49 @@ package com.bytedesk.core.rbac.authority; import org.springframework.stereotype.Component; -// import com.bytedesk.core.assistant.AssistantPermissions; -// import com.bytedesk.core.black.BlackPermissions; -// import com.bytedesk.core.category.CategoryPermissions; -// import com.bytedesk.core.channel.ChannelPermissions; -import com.bytedesk.core.constant.I18Consts; -import com.bytedesk.core.enums.LevelEnum; -import com.bytedesk.core.enums.PermissionEnum; -// import com.bytedesk.core.ip.IpPermissions; -// import com.bytedesk.core.message.MessagePermissions; -// import com.bytedesk.core.push.PushPermissions; -// import com.bytedesk.core.rbac.organization.OrganizationPermissions; -import com.bytedesk.core.rbac.role.RolePermissions; -// import com.bytedesk.core.rbac.user.UserPermissions; -// import com.bytedesk.core.thread.ThreadPermissions; - import lombok.AllArgsConstructor; @Component @AllArgsConstructor public class AuthorityInitializer { - private AuthorityRestService authorityService; + // private AuthorityRestService authorityService; // 在 OrganizationInitializer 中调用 - public void init() { + // public void init() { - // 平台权限数组 - // String[] authoritiesPlatform = { - // AuthorityPermissions.AUTHORITY_PREFIX, - // }; - // for (String prefix : authoritiesPlatform) { - for (PermissionEnum permission : PermissionEnum.values()) { - String permissionValue = AuthorityPermissions.AUTHORITY_PREFIX + permission.name(); - authorityService.createForPlatform(permissionValue); - } - // } + // // 平台权限数组 + // // String[] authoritiesPlatform = { + // // AuthorityPermissions.AUTHORITY_PREFIX, + // // }; + // // for (String prefix : authoritiesPlatform) { + // // for (PermissionEnum permission : PermissionEnum.values()) { + // // String permissionValue = AuthorityPermissions.AUTHORITY_PREFIX + permission.name(); + // // authorityService.createForPlatform(permissionValue); + // // } + // // } - /// - // 组织权限:初始化权限前缀数组 - String[] authoritiesOrganization = { - RolePermissions.ROLE_PREFIX, - // OrganizationPermissions.ORGANIZATION_PREFIX, - // UserPermissions.USER_PREFIX, - // AssistantPermissions.ASSISTANT_PREFIX, - // BlackPermissions.BLACK_PREFIX, - // CategoryPermissions.CATEGORY_PREFIX, - // ChannelPermissions.CHANNEL_PREFIX, - // IpPermissions.IP_PREFIX, - // MessagePermissions.MESSAGE_PREFIX, - // ThreadPermissions.THREAD_PREFIX, - // PushPermissions.PUSH_PREFIX - }; - // 遍历权限前缀数组 - for (String prefix : authoritiesOrganization) { - for (PermissionEnum permission : PermissionEnum.values()) { - String permissionValue = prefix + permission.name(); - if (authorityService.existsByValue(permissionValue)) { - continue; - } - AuthorityRequest authRequest = AuthorityRequest.builder() - .name(I18Consts.I18N_PREFIX + permissionValue) - .value(permissionValue) - .description("Permission for " + permissionValue) - .level(LevelEnum.ORGANIZATION.name()) - .build(); - authRequest.setUid(permissionValue.toLowerCase()); - authorityService.create(authRequest); - } - } - } + // /// + // // 组织权限:初始化权限前缀数组 + // // String[] authoritiesOrganization = { + // // RolePermissions.ROLE_PREFIX, + // // // OrganizationPermissions.ORGANIZATION_PREFIX, + // // // UserPermissions.USER_PREFIX, + // // // AssistantPermissions.ASSISTANT_PREFIX, + // // // BlackPermissions.BLACK_PREFIX, + // // // CategoryPermissions.CATEGORY_PREFIX, + // // // ChannelPermissions.CHANNEL_PREFIX, + // // // IpPermissions.IP_PREFIX, + // // // MessagePermissions.MESSAGE_PREFIX, + // // // ThreadPermissions.THREAD_PREFIX, + // // // PushPermissions.PUSH_PREFIX + // // }; + // // // 遍历权限前缀数组 + // // for (String prefix : authoritiesOrganization) { + // // for (PermissionEnum permission : PermissionEnum.values()) { + // // String permissionValue = RolePermissions.ROLE_PREFIX + permission.name(); + // // authorityService.createForPlatform(permissionValue); + // // } + // // } + // } } \ No newline at end of file diff --git a/modules/core/src/main/java/com/bytedesk/core/rbac/organization/OrganizationInitializer.java b/modules/core/src/main/java/com/bytedesk/core/rbac/organization/OrganizationInitializer.java index 30676f1307..ccead7b4e7 100644 --- a/modules/core/src/main/java/com/bytedesk/core/rbac/organization/OrganizationInitializer.java +++ b/modules/core/src/main/java/com/bytedesk/core/rbac/organization/OrganizationInitializer.java @@ -2,7 +2,7 @@ * @Author: jackning 270580156@qq.com * @Date: 2024-11-05 13:43:02 * @LastEditors: jackning 270580156@qq.com - * @LastEditTime: 2025-02-25 07:39:21 + * @LastEditTime: 2025-03-20 13:43:06 * @Description: bytedesk.com https://github.com/Bytedesk/bytedesk * Please be aware of the BSL license restrictions before installing Bytedesk IM – * selling, reselling, or hosting Bytedesk IM as a service is a breach of the terms and automatically terminates your rights under the license. @@ -20,7 +20,7 @@ import org.springframework.stereotype.Component; import com.bytedesk.core.config.properties.BytedeskProperties; import com.bytedesk.core.constant.BytedeskConsts; -import com.bytedesk.core.rbac.authority.AuthorityInitializer; +// import com.bytedesk.core.rbac.authority.AuthorityInitializer; import com.bytedesk.core.rbac.role.RoleInitializer; import com.bytedesk.core.rbac.user.UserEntity; import com.bytedesk.core.rbac.user.UserInitializer; @@ -35,7 +35,7 @@ import lombok.extern.slf4j.Slf4j; @AllArgsConstructor public class OrganizationInitializer implements SmartInitializingSingleton { - private final AuthorityInitializer authorityInitializer; + // private final AuthorityInitializer authorityInitializer; private final RoleInitializer roleInitializer; @@ -52,7 +52,7 @@ public class OrganizationInitializer implements SmartInitializingSingleton { @Override public void afterSingletonsInstantiated() { // - authorityInitializer.init(); + // authorityInitializer.init(); roleInitializer.init(); userInitializer.init(); // diff --git a/modules/core/src/main/java/com/bytedesk/core/rbac/role/RoleInitializer.java b/modules/core/src/main/java/com/bytedesk/core/rbac/role/RoleInitializer.java index 9790bd2142..aa25e2d257 100644 --- a/modules/core/src/main/java/com/bytedesk/core/rbac/role/RoleInitializer.java +++ b/modules/core/src/main/java/com/bytedesk/core/rbac/role/RoleInitializer.java @@ -2,7 +2,7 @@ * @Author: jackning 270580156@qq.com * @Date: 2024-11-05 13:43:02 * @LastEditors: jackning 270580156@qq.com - * @LastEditTime: 2025-03-20 12:19:35 + * @LastEditTime: 2025-03-20 13:41:43 * @Description: bytedesk.com https://github.com/Bytedesk/bytedesk * Please be aware of the BSL license restrictions before installing Bytedesk IM – * selling, reselling, or hosting Bytedesk IM as a service is a breach of the terms and automatically terminates your rights under the license. @@ -28,19 +28,24 @@ import com.bytedesk.core.rbac.authority.AuthorityPermissions; // import com.bytedesk.core.rbac.organization.OrganizationPermissions; // import com.bytedesk.core.rbac.user.UserPermissions; // import com.bytedesk.core.thread.ThreadPermissions; +import com.bytedesk.core.rbac.authority.AuthorityRestService; -import lombok.AllArgsConstructor; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @Slf4j @Component -@AllArgsConstructor +@RequiredArgsConstructor public class RoleInitializer { private final RoleRestService roleService; + private final AuthorityRestService authorityService; + // 初始化角色, 在 OrganizationInitializer 中调用 public void init() { + // + initPermissions(); // 初始化角色 // 1. 超级管理员 createSuper(); @@ -52,6 +57,13 @@ public class RoleInitializer { createAgent(); } + private void initPermissions() { + for (PermissionEnum permission : PermissionEnum.values()) { + String permissionValue = RolePermissions.ROLE_PREFIX + permission.name(); + authorityService.createForPlatform(permissionValue); + } + } + private void createSuper() { if (roleService.existsByNamePlatform(RoleConsts.ROLE_SUPER)) { return; diff --git a/modules/ticket/src/main/java/com/bytedesk/ticket/ticket/TicketInitializer.java b/modules/ticket/src/main/java/com/bytedesk/ticket/ticket/TicketInitializer.java index 5882158507..43bae18997 100644 --- a/modules/ticket/src/main/java/com/bytedesk/ticket/ticket/TicketInitializer.java +++ b/modules/ticket/src/main/java/com/bytedesk/ticket/ticket/TicketInitializer.java @@ -2,7 +2,7 @@ * @Author: jackning 270580156@qq.com * @Date: 2025-02-03 13:34:21 * @LastEditors: jackning 270580156@qq.com - * @LastEditTime: 2025-03-11 08:59:24 + * @LastEditTime: 2025-03-20 13:34:06 * @Description: bytedesk.com https://github.com/Bytedesk/bytedesk * Please be aware of the BSL license restrictions before installing Bytedesk IM – * selling, reselling, or hosting Bytedesk IM as a service is a breach of the terms and automatically terminates your rights under the license. @@ -20,10 +20,8 @@ import com.bytedesk.core.category.CategoryRequest; import com.bytedesk.core.category.CategoryRestService; import com.bytedesk.core.category.CategoryTypeEnum; import com.bytedesk.core.constant.BytedeskConsts; -import com.bytedesk.core.constant.I18Consts; import com.bytedesk.core.enums.LevelEnum; import com.bytedesk.core.enums.PermissionEnum; -import com.bytedesk.core.rbac.authority.AuthorityRequest; import com.bytedesk.core.rbac.authority.AuthorityRestService; import com.bytedesk.core.utils.Utils; @@ -48,17 +46,7 @@ public class TicketInitializer implements SmartInitializingSingleton { private void initAuthority() { for (PermissionEnum permission : PermissionEnum.values()) { String permissionValue = TicketPermissions.TICKET_PREFIX + permission.name(); - if (authorityService.existsByValue(permissionValue)) { - // log.info("Ticket authority {} already exists", permissionValue); - continue; - } - AuthorityRequest authRequest = AuthorityRequest.builder() - .name(I18Consts.I18N_PREFIX + permissionValue) - .value(permissionValue) - .description("Permission for " + permissionValue) - .build(); - authRequest.setUid(permissionValue.toLowerCase()); - authorityService.create(authRequest); + authorityService.createForPlatform(permissionValue); } }