This is an automated email from the ASF dual-hosted git repository. benjobs pushed a commit to branch dev-2.1.4 in repository https://gitbox.apache.org/repos/asf/incubator-streampark.git
commit 62518813cc5f871d57d17fcccf583426478a499f Author: benjobs <[email protected]> AuthorDate: Mon Apr 15 19:10:47 2024 +0800 [Improve] project permission bug fixed. --- .../console/core/controller/ProjectController.java | 35 ++++++++++++++++------ .../src/views/flink/app/EditFlink.vue | 21 +++++++------ .../src/views/flink/app/EditStreamPark.vue | 1 - 3 files changed, 38 insertions(+), 19 deletions(-) diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/controller/ProjectController.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/controller/ProjectController.java index 859261933..ff341fcde 100644 --- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/controller/ProjectController.java +++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/controller/ProjectController.java @@ -21,6 +21,7 @@ import org.apache.streampark.console.base.domain.RestRequest; import org.apache.streampark.console.base.domain.RestResponse; import org.apache.streampark.console.base.exception.ApiAlertException; import org.apache.streampark.console.core.annotation.AppUpdated; +import org.apache.streampark.console.core.annotation.PermissionScope; import org.apache.streampark.console.core.entity.Project; import org.apache.streampark.console.core.enums.GitAuthorizedError; import org.apache.streampark.console.core.service.ProjectService; @@ -53,6 +54,7 @@ public class ProjectController { @Operation(summary = "Create project") @PostMapping("create") + @PermissionScope(team = "#project.teamId") @RequiresPermissions("project:create") public RestResponse create(Project project) { ApiAlertException.throwIfNull( @@ -64,6 +66,7 @@ public class ProjectController { @AppUpdated @PostMapping("update") @RequiresPermissions("project:update") + @PermissionScope(team = "#project.teamId") public RestResponse update(Project project) { boolean update = projectService.update(project); return RestResponse.success().data(update); @@ -71,29 +74,35 @@ public class ProjectController { @Operation(summary = "Get project") @PostMapping("get") - public RestResponse get(Long id) { - return RestResponse.success().data(projectService.getById(id)); + @PermissionScope(team = "#project.teamId") + public RestResponse get(Project project) { + return RestResponse.success().data(projectService.getById(project.getId())); } @Operation(summary = "Build project") @PostMapping("build") @RequiresPermissions("project:build") - public RestResponse build(Long id) throws Exception { - projectService.build(id); + @PermissionScope(team = "#project.teamId") + public RestResponse build(Project project) throws Exception { + projectService.build(project.getId()); return RestResponse.success(); } @Operation(summary = "Get project build logs") @PostMapping("buildlog") @RequiresPermissions("project:build") + @PermissionScope(team = "#teamId") public RestResponse buildLog( - Long id, @RequestParam(value = "startOffset", required = false) Long startOffset) { + Long id, + @RequestParam(value = "startOffset", required = false) Long startOffset, + Long teamId) { return projectService.getBuildLog(id, startOffset); } @Operation(summary = "List projects") @PostMapping("list") @RequiresPermissions("project:view") + @PermissionScope(team = "#project.teamId") public RestResponse list(Project project, RestRequest restRequest) { if (project.getTeamId() == null) { return RestResponse.success(Collections.emptyList()); @@ -104,6 +113,7 @@ public class ProjectController { @Operation(summary = "List git project branches") @PostMapping("branches") + @PermissionScope(team = "#project.teamId") public RestResponse branches(Project project) { List<String> branches = project.getAllBranches(); return RestResponse.success().data(branches); @@ -112,13 +122,15 @@ public class ProjectController { @Operation(summary = "Delete project") @PostMapping("delete") @RequiresPermissions("project:delete") - public RestResponse delete(Long id) { - Boolean deleted = projectService.delete(id); + @PermissionScope(team = "#project.teamId") + public RestResponse delete(Project project) { + Boolean deleted = projectService.delete(project.getId()); return RestResponse.success().data(deleted); } @Operation(summary = "Authenticate git project") @PostMapping("gitcheck") + @PermissionScope(team = "#project.teamId") public RestResponse gitCheck(Project project) { GitAuthorizedError error = project.gitCheck(); return RestResponse.success().data(error.getType()); @@ -126,6 +138,7 @@ public class ProjectController { @Operation(summary = "Check the project") @PostMapping("exists") + @PermissionScope(team = "#project.teamId") public RestResponse exists(Project project) { boolean exists = projectService.checkExists(project); return RestResponse.success().data(exists); @@ -133,13 +146,15 @@ public class ProjectController { @Operation(summary = "List project modules") @PostMapping("modules") - public RestResponse modules(Long id) { - List<String> result = projectService.modules(id); + @PermissionScope(team = "#project.teamId") + public RestResponse modules(Project project) { + List<String> result = projectService.modules(project.getId()); return RestResponse.success().data(result); } @Operation(summary = "List project jars") @PostMapping("jars") + @PermissionScope(team = "#project.teamId") public RestResponse jars(Project project) { List<String> result = projectService.jars(project); return RestResponse.success().data(result); @@ -147,6 +162,7 @@ public class ProjectController { @Operation(summary = "List project configurations") @PostMapping("listconf") + @PermissionScope(team = "#project.teamId") public RestResponse listConf(Project project) { List<Map<String, Object>> list = projectService.listConf(project); return RestResponse.success().data(list); @@ -154,6 +170,7 @@ public class ProjectController { @Operation(summary = "List the team projects") @PostMapping("select") + @PermissionScope(team = "#teamId") public RestResponse select(@RequestParam Long teamId) { List<Project> list = projectService.findByTeamId(teamId); return RestResponse.success().data(list); diff --git a/streampark-console/streampark-console-webapp/src/views/flink/app/EditFlink.vue b/streampark-console/streampark-console-webapp/src/views/flink/app/EditFlink.vue index e23707599..74c427b4c 100644 --- a/streampark-console/streampark-console-webapp/src/views/flink/app/EditFlink.vue +++ b/streampark-console/streampark-console-webapp/src/views/flink/app/EditFlink.vue @@ -101,10 +101,6 @@ }, versionId: app.versionId || null, k8sRestExposedType: app.k8sRestExposedType, - clusterId: app.clusterId, - [app.executionMode == ExecModeEnum.YARN_SESSION - ? 'yarnSessionClusterId' - : 'flinkClusterId']: app.flinkClusterId, flinkImage: app.flinkImage, k8sNamespace: app.k8sNamespace || null, serviceAccount: app.serviceAccount || null, @@ -114,11 +110,18 @@ ...resetParams, }; - if (app.executionMode == ExecModeEnum.KUBERNETES_SESSION) { - Object.assign(defaultParams, { flinkClusterId: app.flinkClusterId }); - } else if (app.executionMode == ExecModeEnum.YARN_SESSION) { - Object.assign(defaultParams, { flinkClusterId: app.flinkClusterId }); - } else if (app.executionMode == ExecModeEnum.STANDALONE) { + switch (app.executionMode) { + case ExecModeEnum.STANDALONE: + defaultParams['remoteClusterId'] = app.flinkClusterId; + break; + case ExecModeEnum.YARN_SESSION: + defaultParams['yarnSessionClusterId'] = app.flinkClusterId; + break; + case ExecModeEnum.KUBERNETES_SESSION: + defaultParams['k8sSessionClusterId'] = app.flinkClusterId; + break; + default: + break; } if (!executionMode) { diff --git a/streampark-console/streampark-console-webapp/src/views/flink/app/EditStreamPark.vue b/streampark-console/streampark-console-webapp/src/views/flink/app/EditStreamPark.vue index 1b8ff0a06..b14d020f2 100644 --- a/streampark-console/streampark-console-webapp/src/views/flink/app/EditStreamPark.vue +++ b/streampark-console/streampark-console-webapp/src/views/flink/app/EditStreamPark.vue @@ -119,7 +119,6 @@ cpFailureRateInterval: app.cpFailureRateInterval, cpFailureAction: app.cpFailureAction, }, - clusterId: app.clusterId, flinkImage: app.flinkImage, k8sNamespace: app.k8sNamespace, serviceAccount: app.serviceAccount || null,
