一、概述
Patrol创建Namespace的流程

二、创建流程
1.页面流程


2.代码流程
patrol模块下的NamespaceController#createAppNamespace
- 保存
AppNamespace到数据库- 发布
AppNamespaceCreationEvent创建事件
@PreAuthorize(value = "@permissionValidator.hasCreateAppNamespacePermission(#appId, #appNamespace)")
@PostMapping("/apps/{appId}/appnamespaces")
public AppNamespace createAppNamespace(@PathVariable String appId,
@RequestParam(defaultValue = "true") boolean appendNamespacePrefix,
@Valid @RequestBody AppNamespace appNamespace) {
//校验参数
if (!InputValidator.isValidAppNamespace(appNamespace.getName())) {
throw new BadRequestException(String.format("Invalid Namespace format: %s",
InputValidator.INVALID_CLUSTER_NAMESPACE_MESSAGE + " & " + InputValidator.INVALID_NAMESPACE_NAMESPACE_MESSAGE));
}
//保存AppNamespace 对象到数据库
AppNamespace createdAppNamespace = appNamespaceService.createAppNamespaceInLocal(appNamespace, appendNamespacePrefix);
// 赋予权限,若满足如下任一条件:
// 1. 公开类型的 AppNamespace 。
// 2. 私有类型的 AppNamespace ,并且允许 App 管理员创建私有类型的 AppNamespace 。
if (portalConfig.canAppAdminCreatePrivateNamespace() || createdAppNamespace.isPublic()) {
namespaceService.assignNamespaceRoleToOperator(appId, appNamespace.getName(),
userInfoHolder.getUser().getUserId());
}
// 发布 AppNamespaceCreationEvent 创建事件
publisher.publishEvent(new AppNamespaceCreationEvent(createdAppNamespace));
//返回创建的 AppNamespace 对象
return createdAppNamespace;
}
AppNamespaceService#createAppNamespaceInLocal
这里其实就是做了一些逻辑上的校验,没问题,然后保存,初始化权限
@Transactional
public AppNamespace createAppNamespaceInLocal(AppNamespace appNamespace, boolean appendNamespacePrefix) {
String appId = appNamespace.getAppId();
//add app org id as prefix
//校验对应的 app 是否存在,若不存在,抛出 BadRequestException 异常
App app = appService.load(appId);
if (app == null) {
throw new BadRequestException("App not exist. AppId = " + appId);
}
//拼接 AppNamespace 的 `name` 属性
StringBuilder appNamespaceName = new StringBuilder();
//add prefix postfix
appNamespaceName
.append(appNamespace.isPublic

本文详细介绍了Patrol中Namespace创建的具体流程,包括页面操作步骤及后台代码实现过程。重点讲解了通过Patrol模块下的NamespaceController进行创建,以及如何保存到数据库、权限分配等关键步骤。
最低0.47元/天 解锁文章

507

被折叠的 条评论
为什么被折叠?



