ci: permission cache
This commit is contained in:
parent
774d202aa4
commit
5aff5ffb33
|
@ -0,0 +1,39 @@
|
|||
package io.metersphere.sdk.config;
|
||||
|
||||
import io.metersphere.sdk.dto.UserRoleJson;
|
||||
import io.metersphere.sdk.util.JSON;
|
||||
import io.metersphere.sdk.util.LogUtils;
|
||||
import io.metersphere.sdk.util.PermissionCache;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import java.net.URL;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Enumeration;
|
||||
|
||||
@Configuration
|
||||
public class PermissionConfig {
|
||||
@Bean
|
||||
public PermissionCache permissionCache() throws Exception {
|
||||
LogUtils.info("load permission form permission.json file");
|
||||
UserRoleJson userRoleJson = null;
|
||||
Enumeration<URL> urls = this.getClass().getClassLoader().getResources("permission.json");
|
||||
while (urls.hasMoreElements()) {
|
||||
URL url = urls.nextElement();
|
||||
String content = IOUtils.toString(url.openStream(), StandardCharsets.UTF_8);
|
||||
UserRoleJson temp = JSON.parseObject(content, UserRoleJson.class);
|
||||
if (userRoleJson == null) {
|
||||
userRoleJson = temp;
|
||||
} else {
|
||||
userRoleJson.getResource().addAll(temp.getResource());
|
||||
userRoleJson.getPermissions().addAll(temp.getPermissions());
|
||||
}
|
||||
|
||||
}
|
||||
PermissionCache permissionCache = new PermissionCache();
|
||||
permissionCache.setUserRoleJson(userRoleJson);
|
||||
|
||||
return permissionCache;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
package io.metersphere.sdk.dto;
|
||||
|
||||
|
||||
import io.metersphere.system.domain.UserRolePermission;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class UserRoleJson implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private List<UserRoleResource> resource;
|
||||
private List<UserRolePermission> permissions;
|
||||
}
|
|
@ -5,7 +5,7 @@ import lombok.Data;
|
|||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class GroupResource implements Serializable {
|
||||
public class UserRoleResource implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String id;
|
|
@ -11,7 +11,7 @@ import java.util.List;
|
|||
public class UserRoleResourceDTO implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private GroupResource resource;
|
||||
private UserRoleResource resource;
|
||||
private List<UserRolePermission> permissions;
|
||||
private String type;
|
||||
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
package io.metersphere.sdk.util;
|
||||
|
||||
import io.metersphere.sdk.dto.UserRoleJson;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class PermissionCache {
|
||||
private UserRoleJson userRoleJson;
|
||||
}
|
|
@ -0,0 +1,316 @@
|
|||
{
|
||||
"permissions": [
|
||||
{
|
||||
"id": "PROJECT_USER:READ",
|
||||
"name": "permission.project_user.read",
|
||||
"resourceId": "PROJECT_USER"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_USER:READ+ADD",
|
||||
"name": "permission.project_user.add",
|
||||
"resourceId": "PROJECT_USER"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_USER:READ+UPDATE",
|
||||
"name": "permission.project_user.update",
|
||||
"resourceId": "PROJECT_USER"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_USER:READ+DELETE",
|
||||
"name": "permission.project_user.delete",
|
||||
"resourceId": "PROJECT_USER"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_GROUP:READ",
|
||||
"name": "permission.project_group.read",
|
||||
"resourceId": "PROJECT_GROUP"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_GROUP:READ+ADD",
|
||||
"name": "permission.project_group.add",
|
||||
"resourceId": "PROJECT_GROUP"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_GROUP:READ+UPDATE",
|
||||
"name": "permission.project_group.update",
|
||||
"resourceId": "PROJECT_GROUP"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_GROUP:READ+DELETE",
|
||||
"name": "permission.project_group.delete",
|
||||
"resourceId": "PROJECT_GROUP"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_GROUP:READ+SETTING_PERMISSION",
|
||||
"name": "permission.project_group.setting_permission",
|
||||
"resourceId": "PROJECT_GROUP"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_MANAGER:READ",
|
||||
"name": "permission.project_manager.read",
|
||||
"resourceId": "PROJECT_MANAGER"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_MANAGER:READ+UPDATE",
|
||||
"name": "permission.project_manager.update",
|
||||
"resourceId": "PROJECT_MANAGER"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_APP_MANAGER:READ+UPDATE",
|
||||
"name": "permission.project_app_manager.update",
|
||||
"resourceId": "PROJECT_APP_MANAGER"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_ENVIRONMENT:READ",
|
||||
"name": "permission.project_environment.read",
|
||||
"resourceId": "PROJECT_ENVIRONMENT"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_ENVIRONMENT:READ+ADD",
|
||||
"name": "permission.project_environment.add",
|
||||
"resourceId": "PROJECT_ENVIRONMENT"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_ENVIRONMENT:READ+UPDATE",
|
||||
"name": "permission.project_environment.update",
|
||||
"resourceId": "PROJECT_ENVIRONMENT"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_ENVIRONMENT:READ+DELETE",
|
||||
"name": "permission.project_environment.delete",
|
||||
"resourceId": "PROJECT_ENVIRONMENT"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_ENVIRONMENT:READ+COPY",
|
||||
"name": "permission.project_environment.copy",
|
||||
"resourceId": "PROJECT_ENVIRONMENT"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_ENVIRONMENT:READ+IMPORT",
|
||||
"name": "permission.project_environment.import",
|
||||
"resourceId": "PROJECT_ENVIRONMENT"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_ENVIRONMENT:READ+EXPORT",
|
||||
"name": "permission.project_environment.export",
|
||||
"resourceId": "PROJECT_ENVIRONMENT"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_OPERATING_LOG:READ",
|
||||
"name": "permission.project_operation_log.read",
|
||||
"resourceId": "PROJECT_OPERATING_LOG"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_FILE:READ",
|
||||
"name": "permission.project_file.jar",
|
||||
"resourceId": "PROJECT_FILE"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_FILE:READ+UPLOAD+JAR",
|
||||
"name": "permission.project_file.upload_jar",
|
||||
"resourceId": "PROJECT_FILE"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_FILE:READ+DOWNLOAD+JAR",
|
||||
"name": "permission.project_file.file_download",
|
||||
"resourceId": "PROJECT_FILE"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_FILE:READ+DELETE+JAR",
|
||||
"name": "permission.project_file.delete_jar",
|
||||
"resourceId": "PROJECT_FILE"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_FILE:READ+BATCH+DELETE",
|
||||
"name": "permission.project_file.batch_delete",
|
||||
"resourceId": "PROJECT_FILE"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_FILE:READ+BATCH+DOWNLOAD",
|
||||
"name": "permission.project_file.batch_download",
|
||||
"resourceId": "PROJECT_FILE"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_FILE:READ+BATCH+MOVE",
|
||||
"name": "permission.project_file.batch_move",
|
||||
"resourceId": "PROJECT_FILE"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_TEMPLATE:READ",
|
||||
"name": "permission.project_template.read",
|
||||
"resourceId": "PROJECT_TEMPLATE"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_TEMPLATE:READ+CASE_TEMPLATE",
|
||||
"name": "permission.project_template.case_template",
|
||||
"resourceId": "PROJECT_TEMPLATE"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_TEMPLATE:READ+ISSUE_TEMPLATE",
|
||||
"name": "permission.project_template.issue_template",
|
||||
"resourceId": "PROJECT_TEMPLATE"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_TEMPLATE:READ+API_TEMPLATE",
|
||||
"name": "permission.project_template.api_template",
|
||||
"resourceId": "PROJECT_TEMPLATE"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_TEMPLATE:READ+CUSTOM",
|
||||
"name": "permission.project_template.custom",
|
||||
"resourceId": "PROJECT_TEMPLATE"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_MESSAGE:READ",
|
||||
"name": "permission.project_message.read",
|
||||
"resourceId": "PROJECT_MESSAGE"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_MESSAGE:READ+UPDATE",
|
||||
"name": "permission.project_message.update",
|
||||
"resourceId": "PROJECT_MESSAGE"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_MESSAGE:READ+DELETE",
|
||||
"name": "permission.project_message.delete",
|
||||
"resourceId": "PROJECT_MESSAGE"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_CUSTOM_CODE:READ",
|
||||
"name": "permission.project_custom_code.read",
|
||||
"resourceId": "PROJECT_CUSTOM_CODE"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_CUSTOM_CODE:READ+ADD",
|
||||
"name": "permission.project_custom_code.add",
|
||||
"resourceId": "PROJECT_CUSTOM_CODE"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_CUSTOM_CODE:READ+UPDATE",
|
||||
"name": "permission.project_custom_code.update",
|
||||
"resourceId": "PROJECT_CUSTOM_CODE"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_CUSTOM_CODE:READ+DELETE",
|
||||
"name": "permission.project_custom_code.delete",
|
||||
"resourceId": "PROJECT_CUSTOM_CODE"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_CUSTOM_CODE:READ+COPY",
|
||||
"name": "permission.project_custom_code.copy",
|
||||
"resourceId": "PROJECT_CUSTOM_CODE"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_VERSION:READ",
|
||||
"name": "project.version.read",
|
||||
"resourceId": "PROJECT_VERSION",
|
||||
"license": true
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_VERSION:READ+ADD",
|
||||
"name": "project.version.add_version",
|
||||
"resourceId": "PROJECT_VERSION",
|
||||
"license": true
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_VERSION:READ+UPDATE",
|
||||
"name": "project.version.update_version",
|
||||
"resourceId": "PROJECT_VERSION",
|
||||
"license": true
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_VERSION:READ+DELETE",
|
||||
"name": "project.version.delete_version",
|
||||
"resourceId": "PROJECT_VERSION",
|
||||
"license": true
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_VERSION:READ+ENABLE",
|
||||
"name": "project.version.enable",
|
||||
"resourceId": "PROJECT_VERSION",
|
||||
"license": true
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_ERROR_REPORT_LIBRARY:READ",
|
||||
"name": "permission.project_error_report_library.read",
|
||||
"resourceId": "PROJECT_ERROR_REPORT_LIBRARY",
|
||||
"license": true
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_ERROR_REPORT_LIBRARY:READ+ADD",
|
||||
"name": "permission.project_error_report_library.add",
|
||||
"resourceId": "PROJECT_ERROR_REPORT_LIBRARY",
|
||||
"license": true
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_ERROR_REPORT_LIBRARY:READ+UPDATE",
|
||||
"name": "permission.project_error_report_library.update",
|
||||
"resourceId": "PROJECT_ERROR_REPORT_LIBRARY",
|
||||
"license": true
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_ERROR_REPORT_LIBRARY:READ+DELETE",
|
||||
"name": "permission.project_error_report_library.delete",
|
||||
"resourceId": "PROJECT_ERROR_REPORT_LIBRARY",
|
||||
"license": true
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_ERROR_REPORT_LIBRARY:READ+BATCH_DELETE",
|
||||
"name": "permission.project_error_report_library.batch_delete",
|
||||
"resourceId": "PROJECT_ERROR_REPORT_LIBRARY",
|
||||
"license": true
|
||||
}
|
||||
],
|
||||
"resource": [
|
||||
{
|
||||
"id": "PROJECT_USER",
|
||||
"name": "permission.project_user.name"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_MANAGER",
|
||||
"name": "permission.project_manager.name"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_GROUP",
|
||||
"name": "permission.project_group.name"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_ENVIRONMENT",
|
||||
"name": "permission.project_environment.name"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_OPERATING_LOG",
|
||||
"name": "permission.project_operation_log.name"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_CUSTOM_CODE",
|
||||
"name": "permission.project_custom_code.name"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_FILE",
|
||||
"name": "permission.project_file.name"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_TEMPLATE",
|
||||
"name": "permission.project_template.name"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_MESSAGE",
|
||||
"name": "permission.project_message.name"
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_VERSION",
|
||||
"name": "project.version_manage",
|
||||
"license": true
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_ERROR_REPORT_LIBRARY",
|
||||
"name": "permission.project_error_report_library.name",
|
||||
"license": true
|
||||
},
|
||||
{
|
||||
"id": "PROJECT_APP_MANAGER",
|
||||
"name": "permission.project_app_manager.name"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -6,8 +6,8 @@
|
|||
"resourceId": "SYSTEM_USER"
|
||||
},
|
||||
{
|
||||
"id": "SYSTEM_USER:READ+CREATE",
|
||||
"name": "permission.system_user.create",
|
||||
"id": "SYSTEM_USER:READ+ADD",
|
||||
"name": "permission.system_user.add",
|
||||
"resourceId": "SYSTEM_USER"
|
||||
},
|
||||
{
|
||||
|
@ -36,8 +36,8 @@
|
|||
"resourceId": "SYSTEM_WORKSPACE"
|
||||
},
|
||||
{
|
||||
"id": "SYSTEM_WORKSPACE:READ+CREATE",
|
||||
"name": "permission.system_workspace.create",
|
||||
"id": "SYSTEM_WORKSPACE:READ+ADD",
|
||||
"name": "permission.system_workspace.add",
|
||||
"resourceId": "SYSTEM_WORKSPACE"
|
||||
},
|
||||
{
|
||||
|
@ -56,8 +56,8 @@
|
|||
"resourceId": "SYSTEM_ROLE"
|
||||
},
|
||||
{
|
||||
"id": "SYSTEM_ROLE:READ+CREATE",
|
||||
"name": "permission.system_role.create",
|
||||
"id": "SYSTEM_ROLE:READ+ADD",
|
||||
"name": "permission.system_role.add",
|
||||
"resourceId": "SYSTEM_ROLE"
|
||||
},
|
||||
{
|
||||
|
@ -81,8 +81,8 @@
|
|||
"resourceId": "SYSTEM_TEST_POOL"
|
||||
},
|
||||
{
|
||||
"id": "SYSTEM_TEST_POOL:READ+CREATE",
|
||||
"name": "permission.system_test_pool.create",
|
||||
"id": "SYSTEM_TEST_POOL:READ+ADD",
|
||||
"name": "permission.system_test_pool.add",
|
||||
"resourceId": "SYSTEM_TEST_POOL"
|
||||
},
|
||||
{
|
||||
|
@ -146,8 +146,8 @@
|
|||
"resourceId": "WORKSPACE_USER"
|
||||
},
|
||||
{
|
||||
"id": "WORKSPACE_USER:READ+CREATE",
|
||||
"name": "permission.workspace_user.create",
|
||||
"id": "WORKSPACE_USER:READ+ADD",
|
||||
"name": "permission.workspace_user.add",
|
||||
"resourceId": "WORKSPACE_USER"
|
||||
},
|
||||
{
|
||||
|
@ -166,8 +166,8 @@
|
|||
"resourceId": "WORKSPACE_PROJECT_MANAGER"
|
||||
},
|
||||
{
|
||||
"id": "WORKSPACE_PROJECT_MANAGER:READ+CREATE",
|
||||
"name": "permission.workspace_project_manager.create",
|
||||
"id": "WORKSPACE_PROJECT_MANAGER:READ+ADD",
|
||||
"name": "permission.workspace_project_manager.add",
|
||||
"resourceId": "WORKSPACE_PROJECT_MANAGER"
|
||||
},
|
||||
{
|
||||
|
@ -187,7 +187,7 @@
|
|||
},
|
||||
{
|
||||
"id": "WORKSPACE_PROJECT_MANAGER:READ+ADD_USER",
|
||||
"name": "permission.workspace_user.create",
|
||||
"name": "permission.workspace_user.add",
|
||||
"resourceId": "WORKSPACE_PROJECT_MANAGER"
|
||||
},
|
||||
{
|
||||
|
@ -206,8 +206,8 @@
|
|||
"resourceId": "WORKSPACE_PROJECT_ENVIRONMENT"
|
||||
},
|
||||
{
|
||||
"id": "WORKSPACE_PROJECT_ENVIRONMENT:READ+CREATE",
|
||||
"name": "permission.workspace_project_environment.create",
|
||||
"id": "WORKSPACE_PROJECT_ENVIRONMENT:READ+ADD",
|
||||
"name": "permission.workspace_project_environment.add",
|
||||
"resourceId": "WORKSPACE_PROJECT_ENVIRONMENT"
|
||||
},
|
||||
{
|
||||
|
@ -236,8 +236,8 @@
|
|||
"resourceId": "WORKSPACE_PROJECT_ENVIRONMENT"
|
||||
},
|
||||
{
|
||||
"id": "WORKSPACE_PROJECT_ENVIRONMENT:READ+CREATE_GROUP",
|
||||
"name": "permission.workspace_project_environment.create_group",
|
||||
"id": "WORKSPACE_PROJECT_ENVIRONMENT:READ+ADD_GROUP",
|
||||
"name": "permission.workspace_project_environment.add_group",
|
||||
"resourceId": "WORKSPACE_PROJECT_ENVIRONMENT"
|
||||
},
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue