This commit is contained in:
jack ning
2025-03-20 13:44:41 +08:00
parent c26e928e5a
commit 4e4af65263
5 changed files with 58 additions and 86 deletions

View File

@@ -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);
// // }
// // }
// }
}

View File

@@ -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();
//

View File

@@ -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;