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,

Reply via email to