fix(系统设置): 获取用户组权限配置,没有翻译

--task=1012267 --user=陈建星 用户组管理-后台 https://www.tapd.cn/55049933/s/1401476
This commit is contained in:
jianxing 2023-08-07 18:17:18 +08:00 committed by jianxing
parent c814fa697d
commit 9ab2a11af9
11 changed files with 163 additions and 96 deletions

View File

@ -12,13 +12,6 @@ public class PermissionConstants {
public static final String SYSTEM_USER_ROLE_DELETE = "SYSTEM_USER_ROLE:READ+DELETE"; public static final String SYSTEM_USER_ROLE_DELETE = "SYSTEM_USER_ROLE:READ+DELETE";
/*------ end: SYSTEM_USER_ROLE ------*/ /*------ end: SYSTEM_USER_ROLE ------*/
/*------ start: SYSTEM_USER_ROLE_RELATION ------*/
public static final String SYSTEM_USER_ROLE_RELATION_READ = "SYSTEM_USER_ROLE_RELATION_READ:READ";
public static final String SYSTEM_USER_ROLE_RELATION_ADD = "SYSTEM_USER_ROLE_RELATION_READ:READ+ADD";
public static final String SYSTEM_USER_ROLE_RELATION_UPDATE = "SYSTEM_USER_ROLE_RELATION_READ:READ+UPDATE";
public static final String SYSTEM_USER_ROLE_RELATION_DELETE = "SYSTEM_USER_ROLE_RELATION_READ:READ+DELETE";
/*------ end: SYSTEM_USER_ROLE_RELATION ------*/
/*------ start: SYSTEM_ORGANIZATION_PROJECT ------*/ /*------ start: SYSTEM_ORGANIZATION_PROJECT ------*/
public static final String SYSTEM_ORGANIZATION_PROJECT_READ = "SYSTEM_ORGANIZATION_PROJECT:READ"; public static final String SYSTEM_ORGANIZATION_PROJECT_READ = "SYSTEM_ORGANIZATION_PROJECT:READ";
public static final String SYSTEM_ORGANIZATION_PROJECT_READ_ADD = "SYSTEM_ORGANIZATION_PROJECT:READ+ADD"; public static final String SYSTEM_ORGANIZATION_PROJECT_READ_ADD = "SYSTEM_ORGANIZATION_PROJECT:READ+ADD";
@ -78,7 +71,7 @@ public class PermissionConstants {
public static final String SYSTEM_PARAMETER_SETTING_DISPLAY_READ = "SYSTEM_PARAMETER_SETTING_DISPLAY:READ"; public static final String SYSTEM_PARAMETER_SETTING_DISPLAY_READ = "SYSTEM_PARAMETER_SETTING_DISPLAY:READ";
public static final String SYSTEM_PARAMETER_SETTING_DISPLAY_READ_UPDATE = "SYSTEM_PARAMETER_SETTING_DISPLAY:READ+UPDATE"; public static final String SYSTEM_PARAMETER_SETTING_DISPLAY_READ_UPDATE = "SYSTEM_PARAMETER_SETTING_DISPLAY:READ+UPDATE";
public static final String SYSTEM_PARAMETER_SETTING_AUTH_READ = "SYSTEM_PARAMETER_SETTING_AUTH:READ"; public static final String SYSTEM_PARAMETER_SETTING_AUTH_READ = "SYSTEM_PARAMETER_SETTING_AUTH:READ";
public static final String SYSTEM_PARAMETER_SETTING_AUTH_READ_CREAT = "SYSTEM_PARAMETER_SETTING_AUTH:READ+CREAT"; public static final String SYSTEM_PARAMETER_SETTING_AUTH_READ_ADD = "SYSTEM_PARAMETER_SETTING_AUTH:READ+ADD";
public static final String SYSTEM_PARAMETER_SETTING_AUTH_READ_UPDATE = "SYSTEM_PARAMETER_SETTING_AUTH:READ+UPDATE"; public static final String SYSTEM_PARAMETER_SETTING_AUTH_READ_UPDATE = "SYSTEM_PARAMETER_SETTING_AUTH:READ+UPDATE";
public static final String SYSTEM_PARAMETER_SETTING_AUTH_READ_DELETE = "SYSTEM_PARAMETER_SETTING_AUTH:READ+DELETE"; public static final String SYSTEM_PARAMETER_SETTING_AUTH_READ_DELETE = "SYSTEM_PARAMETER_SETTING_AUTH:READ+DELETE";

View File

@ -4,7 +4,9 @@ import io.metersphere.sdk.dto.Permission;
import io.metersphere.sdk.dto.PermissionDefinitionItem; import io.metersphere.sdk.dto.PermissionDefinitionItem;
import io.metersphere.sdk.dto.request.PermissionSettingUpdateRequest; import io.metersphere.sdk.dto.request.PermissionSettingUpdateRequest;
import io.metersphere.sdk.exception.MSException; import io.metersphere.sdk.exception.MSException;
import io.metersphere.sdk.util.JSON;
import io.metersphere.sdk.util.PermissionCache; import io.metersphere.sdk.util.PermissionCache;
import io.metersphere.sdk.util.Translator;
import io.metersphere.system.domain.UserRole; import io.metersphere.system.domain.UserRole;
import io.metersphere.system.domain.UserRoleExample; import io.metersphere.system.domain.UserRoleExample;
import io.metersphere.system.mapper.UserRoleMapper; import io.metersphere.system.mapper.UserRoleMapper;
@ -15,10 +17,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.*;
import java.util.List;
import java.util.Set;
import java.util.UUID;
import static io.metersphere.sdk.controller.handler.result.CommonResultCode.INTERNAL_USER_ROLE_PERMISSION; import static io.metersphere.sdk.controller.handler.result.CommonResultCode.INTERNAL_USER_ROLE_PERMISSION;
@ -48,22 +47,33 @@ public class BaseUserRoleService {
Set<String> permissionIds = baseUserRolePermissionService.getPermissionIdSetByRoleId(userRole.getId()); Set<String> permissionIds = baseUserRolePermissionService.getPermissionIdSetByRoleId(userRole.getId());
// 获取所有的权限 // 获取所有的权限
List<PermissionDefinitionItem> permissionDefinition = permissionCache.getPermissionDefinition(); List<PermissionDefinitionItem> permissionDefinition = permissionCache.getPermissionDefinition();
// 深拷贝
permissionDefinition = JSON.parseArray(JSON.toJSONString(permissionDefinition), PermissionDefinitionItem.class);
// 过滤该用户组级别的菜单例如系统级别 // 过滤该用户组级别的菜单例如系统级别
permissionDefinition = permissionDefinition.stream() permissionDefinition = permissionDefinition.stream()
.filter(item -> StringUtils.equals(item.getType(), userRole.getType())) .filter(item -> StringUtils.equals(item.getType(), userRole.getType()))
.toList(); .toList();
// 设置勾选项 // 设置勾选项
permissionDefinition.forEach(firstLevel -> { for (PermissionDefinitionItem firstLevel : permissionDefinition) {
List<PermissionDefinitionItem> children = firstLevel.getChildren(); List<PermissionDefinitionItem> children = firstLevel.getChildren();
boolean allCheck = true; boolean allCheck = true;
firstLevel.setName(Translator.get(firstLevel.getName()));
for (PermissionDefinitionItem secondLevel : children) { for (PermissionDefinitionItem secondLevel : children) {
List<Permission> permissions = secondLevel.getPermissions(); List<Permission> permissions = secondLevel.getPermissions();
secondLevel.setName(Translator.get(secondLevel.getName()));
if (CollectionUtils.isEmpty(permissions)) { if (CollectionUtils.isEmpty(permissions)) {
continue; continue;
} }
boolean secondAllCheck = true; boolean secondAllCheck = true;
for (Permission p : permissions) { for (Permission p : permissions) {
if (StringUtils.isNotBlank(p.getName())) {
// name 字段翻译 name 字段
p.setName(Translator.get(p.getName()));
} else {
p.setName(translateDefaultPermissionName(p));
}
if (permissionIds.contains(p.getId())) { if (permissionIds.contains(p.getId())) {
p.setEnable(true); p.setEnable(true);
} else { } else {
@ -79,11 +89,29 @@ public class BaseUserRoleService {
} }
} }
firstLevel.setEnable(allCheck); firstLevel.setEnable(allCheck);
}); }
return permissionDefinition; return permissionDefinition;
} }
private String translateDefaultPermissionName(Permission p) {
if (StringUtils.isNotBlank(p.getName())) {
p.getName();
}
String[] idSplit = p.getId().split(":");
String permissionKey = idSplit[idSplit.length - 1];
Map<String, String> translationMap = new HashMap<>(){{
put("READ", "permission.read");
put("READ+ADD", "permission.add");
put("READ+UPDATE", "permission.edit");
put("READ+DELETE", "permission.delete");
put("READ+IMPORT", "permission.import");
put("READ+RECOVER", "permission.recover");
}};
return Translator.get(translationMap.get(permissionKey));
}
/** /**
* 更新单个用户组的配置项 * 更新单个用户组的配置项
* @param request * @param request

View File

@ -416,4 +416,14 @@ project=Project
add=Add add=Add
delete=Delete delete=Delete
update=Update update=Update
project_is_not_exist=Project is not exist project_is_not_exist=Project is not exist
#permission
permission.system.name=System
permission.org.name=Organization
permission.project.name=Project
permission.read=Read
permission.add=Create
permission.edit=Update
permission.delete=Delete
permission.import=Import
permission.recover=Recover

View File

@ -415,3 +415,14 @@ add=添加
delete=删除 delete=删除
update=更新 update=更新
project_is_not_exist=项目不存在 project_is_not_exist=项目不存在
#permission
permission.system.name=系统
permission.org.name=组织
permission.project.name=项目
permission.read=查询
permission.add=创建
permission.edit=修改
permission.delete=删除
permission.import=导入
permission.recover=恢复

View File

@ -413,4 +413,15 @@ project=項目
add=添加 add=添加
delete=删除 delete=删除
update=更新 update=更新
project_is_not_exist=項目不存在 project_is_not_exist=項目不存在
#permission
permission.system.name=系統
permission.org.name=組織
permission.project.name=項目
permission.read=查詢
permission.add=創建
permission.edit=修改
permission.delete=刪除
permission.import=導入
permission.recover=恢復

View File

@ -163,15 +163,27 @@ plugin.create_user.not_blank=createUser cannot be empty
plugin.create_user.length_range=createUser length must be between {min} and {max} plugin.create_user.length_range=createUser length must be between {min} and {max}
plugin.scenario.not_blank=scenario cannot be empty plugin.scenario.not_blank=scenario cannot be empty
plugin.scenario.length_range=scenario length must be between {min} and {max} plugin.scenario.length_range=scenario length must be between {min} and {max}
permission.system_plugin.name=Plugin
permission.system_plugin.read=READ
permission.system_plugin.add=CREATE
permission.system_plugin.edit=UPDATE
permission.system_plugin.delete=DELETE
plugin.exist=plugin name or filename already exists plugin.exist=plugin name or filename already exists
plugin.type.exist=plugin type already exists plugin.type.exist=plugin type already exists
plugin.script.exist=duplicate script id plugin.script.exist=duplicate script id
plugin.script.format=malformed script plugin.script.format=malformed script
# permission
permission.system_plugin.name=Plugin
permission.system_organization_project.name=Organization Project
permission.system_user_role.name=User role
permission.system_test_resource_pool.name=Resource pool
permission.system_parameter_setting.name=Parameter setting
permission.system_parameter_setting_base.read=Base parameter setting read
permission.system_parameter_setting_base.update=Base parameter setting update
permission.system_parameter_setting_display.read=Display parameter setting read
permission.system_parameter_setting_display.update=Display parameter setting update
permission.system_parameter_setting_auth.read=Auth parameter setting read
permission.system_parameter_setting_auth.add=Auth parameter setting create
permission.system_parameter_setting_auth.update=Auth parameter setting update
permission.system_parameter_setting_auth.delete=Auth parameter setting delete
permission.organization_user_role.name=User group
permission.organization_member.name=User

View File

@ -162,12 +162,26 @@ plugin.create_user.not_blank=创建人不能为空
plugin.create_user.length_range=创建人长度必须在{min}和{max}之间 plugin.create_user.length_range=创建人长度必须在{min}和{max}之间
plugin.scenario.not_blank=插件使用场景PAI/PLATFORM不能为空 plugin.scenario.not_blank=插件使用场景PAI/PLATFORM不能为空
plugin.scenario.length_range=插件使用场景PAI/PLATFORM长度必须在{min}和{max}之间 plugin.scenario.length_range=插件使用场景PAI/PLATFORM长度必须在{min}和{max}之间
permission.system_plugin.name=插件
permission.system_plugin.read=查看插件
permission.system_plugin.add=创建插件
permission.system_plugin.edit=更新插件
permission.system_plugin.delete=删除插件
plugin.exist=插件名称或文件名已存在 plugin.exist=插件名称或文件名已存在
plugin.type.exist=插件类型已存在 plugin.type.exist=插件类型已存在
plugin.script.exist=脚本id重复 plugin.script.exist=脚本id重复
plugin.script.format=脚本格式错误 plugin.script.format=脚本格式错误
# permission
permission.system_plugin.name=插件
permission.system_organization_project.name=组织与项目
permission.system_user_role.name=用户组
permission.system_test_resource_pool.name=资源池
permission.system_parameter_setting.name=参数设置
permission.system_parameter_setting_base.read=基础设置-查询
permission.system_parameter_setting_base.update=基础设置-编辑
permission.system_parameter_setting_display.read=界面设置-查询
permission.system_parameter_setting_display.update=界面设置-编辑
permission.system_parameter_setting_auth.read=认证设置-查询
permission.system_parameter_setting_auth.add=认证设置-创建
permission.system_parameter_setting_auth.update=认证设置-编辑
permission.system_parameter_setting_auth.delete=认证设置-删除
permission.organization_user_role.name=用户组
permission.organization_member.name=用户

View File

@ -162,13 +162,24 @@ plugin.create_user.not_blank=创建人不能為空
plugin.create_user.length_range=创建人長度必須在{min}和{max}之间 plugin.create_user.length_range=创建人長度必須在{min}和{max}之间
plugin.scenario.not_blank=插件使用场景PAI/PLATFORM不能為空 plugin.scenario.not_blank=插件使用场景PAI/PLATFORM不能為空
plugin.scenario.length_range=插件使用场景PAI/PLATFORM長度必須在{min}和{max}之间 plugin.scenario.length_range=插件使用场景PAI/PLATFORM長度必須在{min}和{max}之间
permission.system_plugin.name=插件
permission.system_plugin.read=查看插件
permission.system_plugin.add=創建插件
permission.system_plugin.edit=更新插件
permission.system_plugin.delete=刪除插件
plugin.exist=插件名稱或文件名已存在 plugin.exist=插件名稱或文件名已存在
plugin.type.exist=插件類型已存在 plugin.type.exist=插件類型已存在
plugin.script.exist=腳本id重複 plugin.script.exist=腳本id重複
plugin.script.format=腳本格式錯誤 plugin.script.format=腳本格式錯誤
# permission
permission.system_plugin.name=插件
permission.system_organization_project.name=組織與項目
permission.system_user_role.name=用戶組
permission.system_test_resource_pool.name=資源池
permission.system_parameter_setting.name=參數設置
permission.system_parameter_setting_base.read=基礎設置-查詢
permission.system_parameter_setting_base.update=基礎設置-編輯
permission.system_parameter_setting_display.read=界面設置-查詢
permission.system_parameter_setting_display.update=界面設置-編輯
permission.system_parameter_setting_auth.read=認證設置-查詢
permission.system_parameter_setting_auth.add=認證設置-創建
permission.system_parameter_setting_auth.update=認證設置-編輯
permission.system_parameter_setting_auth.delete=認證設置-刪除
permission.organization_user_role.name=用戶組
permission.organization_member.name=用戶

View File

@ -41,7 +41,7 @@ public class AuthSourceController {
@PostMapping("/add") @PostMapping("/add")
@Operation(summary = "新增认证设置") @Operation(summary = "新增认证设置")
@RequiresPermissions(PermissionConstants.SYSTEM_PARAMETER_SETTING_AUTH_READ_CREAT) @RequiresPermissions(PermissionConstants.SYSTEM_PARAMETER_SETTING_AUTH_READ_ADD)
@Log(type = OperationLogType.ADD, expression = "#msClass.addLog(#authSource)", msClass = AuthSourceLogService.class) @Log(type = OperationLogType.ADD, expression = "#msClass.addLog(#authSource)", msClass = AuthSourceLogService.class)
public AuthSource add(@Validated @RequestBody AuthSourceRequest authSource) { public AuthSource add(@Validated @RequestBody AuthSourceRequest authSource) {
return authSourceService.addAuthSource(authSource); return authSourceService.addAuthSource(authSource);

View File

@ -9,24 +9,19 @@
"name": "permission.system_organization_project.name", "name": "permission.system_organization_project.name",
"permissions": [ "permissions": [
{ {
"id": "SYSTEM_ORGANIZATION_PROJECT:READ", "id": "SYSTEM_ORGANIZATION_PROJECT:READ"
"name": "permission.system_organization_project.read"
}, },
{ {
"id": "SYSTEM_ORGANIZATION_PROJECT:READ+ADD", "id": "SYSTEM_ORGANIZATION_PROJECT:READ+ADD"
"name": "permission.system_organization_project.add"
}, },
{ {
"id": "SYSTEM_ORGANIZATION_PROJECT:READ+UPDATE", "id": "SYSTEM_ORGANIZATION_PROJECT:READ+UPDATE"
"name": "permission.system_organization_project.update"
}, },
{ {
"id": "SYSTEM_ORGANIZATION_PROJECT:READ+DELETE", "id": "SYSTEM_ORGANIZATION_PROJECT:READ+DELETE"
"name": "permission.system_organization_project.delete"
}, },
{ {
"id": "SYSTEM_ORGANIZATION_PROJECT:READ+RECOVER", "id": "SYSTEM_ORGANIZATION_PROJECT:READ+RECOVER"
"name": "permission.system_organization_project.recover"
} }
] ]
}, },
@ -35,20 +30,16 @@
"name": "permission.system_user_role.name", "name": "permission.system_user_role.name",
"permissions": [ "permissions": [
{ {
"id": "SYSTEM_USER_ROLE:READ", "id": "SYSTEM_USER_ROLE:READ"
"name": "permission.system_user_role.read"
}, },
{ {
"id": "SYSTEM_USER_ROLE:READ+ADD", "id": "SYSTEM_USER_ROLE:READ+ADD"
"name": "permission.system_user_role.add"
}, },
{ {
"id": "SYSTEM_USER_ROLE:READ+UPDATE", "id": "SYSTEM_USER_ROLE:READ+UPDATE"
"name": "permission.system_user_role.update"
}, },
{ {
"id": "SYSTEM_USER_ROLE:READ+DELETE", "id": "SYSTEM_USER_ROLE:READ+DELETE"
"name": "permission.system_user_role.delete"
} }
] ]
}, },
@ -57,42 +48,36 @@
"name": "permission.system_test_resource_pool.name", "name": "permission.system_test_resource_pool.name",
"permissions": [ "permissions": [
{ {
"id": "SYSTEM_TEST_RESOURCE_POOL:READ", "id": "SYSTEM_TEST_RESOURCE_POOL:READ"
"name": "permission.system_test_resource_pool.read"
}, },
{ {
"id": "SYSTEM_TEST_RESOURCE_POOL:READ+ADD", "id": "SYSTEM_TEST_RESOURCE_POOL:READ+ADD"
"name": "permission.system_test_resource_pool.add"
}, },
{ {
"id": "SYSTEM_TEST_RESOURCE_POOL:READ+UPDATE", "id": "SYSTEM_TEST_RESOURCE_POOL:READ+UPDATE"
"name": "permission.system_test_resource_pool.update"
}, },
{ {
"id": "SYSTEM_TEST_RESOURCE_POOL:READ+DELETE", "id": "SYSTEM_TEST_RESOURCE_POOL:READ+DELETE"
"name": "permission.system_test_resource_pool.delete"
} }
] ]
}, },
{ {
"id": "SYSTEM_PLUGIN:READ", "id": "SYSTEM_PLUGIN",
"name": "permission.system_plugin.read", "name": "permission.system_plugin.name",
"resourceId": "SYSTEM_PLUGIN" "permissions": [
}, {
{ "id": "SYSTEM_PLUGIN:READ"
"id": "SYSTEM_PLUGIN:READ+ADD", },
"name": "permission.system_plugin.add", {
"resourceId": "SYSTEM_PLUGIN" "id": "SYSTEM_PLUGIN:READ+ADD"
}, },
{ {
"id": "SYSTEM_PLUGIN:READ+UPDATE", "id": "SYSTEM_PLUGIN:READ+UPDATE"
"name": "permission.system_plugin.edit", },
"resourceId": "SYSTEM_PLUGIN" {
}, "id": "SYSTEM_PLUGIN:READ+DELETE"
{ }
"id": "SYSTEM_PLUGIN:READ+DELETE", ]
"name": "permission.system_plugin.delete",
"resourceId": "SYSTEM_PLUGIN"
}, },
{ {
"id": "SYSTEM_PARAMETER_SETTING", "id": "SYSTEM_PARAMETER_SETTING",
@ -119,8 +104,8 @@
"name": "permission.system_parameter_setting_auth.read" "name": "permission.system_parameter_setting_auth.read"
}, },
{ {
"id": "SYSTEM_PARAMETER_SETTING_AUTH:READ+CREAT", "id": "SYSTEM_PARAMETER_SETTING_AUTH:READ+ADD",
"name": "permission.system_parameter_setting_auth.creat" "name": "permission.system_parameter_setting_auth.add"
}, },
{ {
"id": "SYSTEM_PARAMETER_SETTING_AUTH:READ+UPDATE", "id": "SYSTEM_PARAMETER_SETTING_AUTH:READ+UPDATE",
@ -144,20 +129,16 @@
"name": "permission.organization_user_role.name", "name": "permission.organization_user_role.name",
"permissions": [ "permissions": [
{ {
"id": "ORGANIZATION_USER_ROLE:READ", "id": "ORGANIZATION_USER_ROLE:READ"
"name": "permission.organization_user_role.read"
}, },
{ {
"id": "ORGANIZATION_USER_ROLE:READ+ADD", "id": "ORGANIZATION_USER_ROLE:READ+ADD"
"name": "permission.organization_user_role.add"
}, },
{ {
"id": "ORGANIZATION_USER_ROLE:READ+UPDATE", "id": "ORGANIZATION_USER_ROLE:READ+UPDATE"
"name": "permission.organization_user_role.update"
}, },
{ {
"id": "ORGANIZATION_USER_ROLE:READ+DELETE", "id": "ORGANIZATION_USER_ROLE:READ+DELETE"
"name": "permission.organization_user_role.delete"
} }
] ]
}, },
@ -166,20 +147,16 @@
"name": "permission.organization_member.name", "name": "permission.organization_member.name",
"permissions": [ "permissions": [
{ {
"id": "ORGANIZATION_MEMBER:READ", "id": "ORGANIZATION_MEMBER:READ"
"name": "permission.organization_member.read"
}, },
{ {
"id": "ORGANIZATION_MEMBER:READ+ADD", "id": "ORGANIZATION_MEMBER:READ+ADD"
"name": "permission.organization_member.add"
}, },
{ {
"id": "ORGANIZATION_MEMBER:READ+UPDATE", "id": "ORGANIZATION_MEMBER:READ+UPDATE"
"name": "permission.organization_member.update"
}, },
{ {
"id": "ORGANIZATION_MEMBER:READ+DELETE", "id": "ORGANIZATION_MEMBER:READ+DELETE"
"name": "permission.organization_member.delete"
} }
] ]
} }

View File

@ -61,7 +61,7 @@ public class AuthSourceControllerTests extends BaseTest {
this.requestPost(AUTH_SOURCE_ADD, authSource); this.requestPost(AUTH_SOURCE_ADD, authSource);
// @@校验权限 // @@校验权限
requestPostPermissionTest(PermissionConstants.SYSTEM_PARAMETER_SETTING_AUTH_READ_CREAT, AUTH_SOURCE_ADD, authSource); requestPostPermissionTest(PermissionConstants.SYSTEM_PARAMETER_SETTING_AUTH_READ_ADD, AUTH_SOURCE_ADD, authSource);
} }
@Test @Test