This is an automated email from the ASF dual-hosted git repository.

nicholasjiang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/paimon-webui.git


The following commit(s) were added to refs/heads/main by this push:
     new 06c53e8  [Improvement] Add permission annotation for interface (#227)
06c53e8 is described below

commit 06c53e885367a780146ff845b1fa2bfec50109a1
Author: s7monk <[email protected]>
AuthorDate: Mon May 20 14:18:26 2024 +0800

    [Improvement] Add permission annotation for interface (#227)
---
 .../paimon/web/server/controller/CatalogController.java       |  4 ++++
 .../web/server/controller/CdcJobDefinitionController.java     |  6 ++++++
 .../paimon/web/server/controller/DatabaseController.java      |  4 ++++
 .../paimon/web/server/controller/MetadataController.java      |  6 ++++++
 .../apache/paimon/web/server/controller/TableController.java  | 11 +++++++++++
 5 files changed, 31 insertions(+)

diff --git 
a/paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/CatalogController.java
 
b/paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/CatalogController.java
index f4cb391..6796de6 100644
--- 
a/paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/CatalogController.java
+++ 
b/paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/CatalogController.java
@@ -24,6 +24,7 @@ import org.apache.paimon.web.server.data.result.R;
 import org.apache.paimon.web.server.data.result.enums.Status;
 import org.apache.paimon.web.server.service.CatalogService;
 
+import cn.dev33.satoken.annotation.SaCheckPermission;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
@@ -53,6 +54,7 @@ public class CatalogController {
      * @param catalogDTO The catalogDTO for the catalog
      * @return A response indicating the success or failure of the operation
      */
+    @SaCheckPermission("metadata:catalog:create")
     @PostMapping("/create")
     public R<Void> createCatalog(@RequestBody CatalogDTO catalogDTO) {
         try {
@@ -71,6 +73,7 @@ public class CatalogController {
      *
      * @return The list of all catalogs
      */
+    @SaCheckPermission("metadata:catalog:list")
     @GetMapping("/list")
     public R<List<CatalogInfo>> getCatalog() {
         List<CatalogInfo> catalogs = catalogService.list();
@@ -83,6 +86,7 @@ public class CatalogController {
      * @param catalogDTO Given the catalog name or catalog id to remove catalog
      * @return A response indicating the success or failure of the operation
      */
+    @SaCheckPermission("metadata:catalog:remove")
     @PostMapping("/remove")
     public R<Void> removeCatalog(@RequestBody CatalogDTO catalogDTO) {
         boolean remove;
diff --git 
a/paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/CdcJobDefinitionController.java
 
b/paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/CdcJobDefinitionController.java
index 94df83d..f539cba 100644
--- 
a/paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/CdcJobDefinitionController.java
+++ 
b/paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/CdcJobDefinitionController.java
@@ -24,6 +24,7 @@ import org.apache.paimon.web.server.data.result.PageR;
 import org.apache.paimon.web.server.data.result.R;
 import org.apache.paimon.web.server.service.CdcJobDefinitionService;
 
+import cn.dev33.satoken.annotation.SaCheckPermission;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -47,16 +48,19 @@ public class CdcJobDefinitionController {
         this.cdcJobDefinitionService = cdcJobDefinitionService;
     }
 
+    @SaCheckPermission("cdc:job:create")
     @PostMapping("create")
     public R<Void> createCdcJob(@RequestBody CdcJobDefinitionDTO 
cdcJobDefinitionDTO) {
         return cdcJobDefinitionService.create(cdcJobDefinitionDTO);
     }
 
+    @SaCheckPermission("cdc:job:update")
     @PutMapping("update")
     public R<Void> updateCdcJob(@RequestBody CdcJobDefinitionDTO 
cdcJobDefinitionDTO) {
         return cdcJobDefinitionService.update(cdcJobDefinitionDTO);
     }
 
+    @SaCheckPermission("cdc:job:list")
     @GetMapping("list")
     public PageR<CdcJobDefinition> listAllCdcJob(
             @RequestParam(required = false) boolean withConfig,
@@ -65,6 +69,7 @@ public class CdcJobDefinitionController {
         return cdcJobDefinitionService.listAll(withConfig, currentPage, 
pageSize);
     }
 
+    @SaCheckPermission("cdc:job:query")
     @GetMapping("/{id}")
     public R<CdcJobDefinition> getById(@PathVariable Integer id) {
         CdcJobDefinition cdcJobDefinition = 
cdcJobDefinitionService.getById(id);
@@ -74,6 +79,7 @@ public class CdcJobDefinitionController {
         return R.succeed(cdcJobDefinition);
     }
 
+    @SaCheckPermission("cdc:job:delete")
     @DeleteMapping("{id}")
     public R<Void> deleteById(@PathVariable Integer id) {
         cdcJobDefinitionService.removeById(id);
diff --git 
a/paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/DatabaseController.java
 
b/paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/DatabaseController.java
index 66ed855..a9a78d6 100644
--- 
a/paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/DatabaseController.java
+++ 
b/paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/DatabaseController.java
@@ -24,6 +24,7 @@ import org.apache.paimon.web.server.data.result.enums.Status;
 import org.apache.paimon.web.server.data.vo.DatabaseVO;
 import org.apache.paimon.web.server.service.DatabaseService;
 
+import cn.dev33.satoken.annotation.SaCheckPermission;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -52,6 +53,7 @@ public class DatabaseController {
      * @param databaseDTO The details of the database to create
      * @return a {@code R<Void>} response indicating success or failure
      */
+    @SaCheckPermission("metadata:database:create")
     @PostMapping("/create")
     public R<Void> createDatabase(@RequestBody DatabaseDTO databaseDTO) {
         if (databaseService.databaseExists(databaseDTO)) {
@@ -67,6 +69,7 @@ public class DatabaseController {
      *
      * @return The list of databases of given catalog id
      */
+    @SaCheckPermission("metadata:database:list")
     @GetMapping("/list")
     public R<List<DatabaseVO>> listDatabases(
             @RequestParam(value = "catalogId", required = false) Integer 
catalogId) {
@@ -79,6 +82,7 @@ public class DatabaseController {
      * @param databaseDTO The database to be dropped
      * @return a {@code R<Void>} response indicating success or failure
      */
+    @SaCheckPermission("metadata:database:drop")
     @PostMapping("/drop")
     public R<Void> dropDatabase(@RequestBody DatabaseDTO databaseDTO) {
         return databaseService.dropDatabase(databaseDTO)
diff --git 
a/paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/MetadataController.java
 
b/paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/MetadataController.java
index 21b7d4a..f9c540b 100644
--- 
a/paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/MetadataController.java
+++ 
b/paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/MetadataController.java
@@ -27,6 +27,7 @@ import org.apache.paimon.web.server.data.vo.SchemaVO;
 import org.apache.paimon.web.server.data.vo.SnapshotVO;
 import org.apache.paimon.web.server.service.MetadataService;
 
+import cn.dev33.satoken.annotation.SaCheckPermission;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -47,26 +48,31 @@ public class MetadataController {
         this.metadataService = metadataService;
     }
 
+    @SaCheckPermission("metadata:schema:list")
     @PostMapping("/schema")
     public R<List<SchemaVO>> getSchemaInfo(@RequestBody MetadataDTO dto) {
         return R.succeed(metadataService.getSchema(dto));
     }
 
+    @SaCheckPermission("metadata:snapshot:list")
     @PostMapping("/snapshot")
     public R<List<SnapshotVO>> getSnapshotInfo(@RequestBody MetadataDTO dto) {
         return R.succeed(metadataService.getSnapshot(dto));
     }
 
+    @SaCheckPermission("metadata:manifest:list")
     @PostMapping("/manifest")
     public R<List<ManifestsVO>> getManifestInfo(@RequestBody MetadataDTO dto) {
         return R.succeed(metadataService.getManifest(dto));
     }
 
+    @SaCheckPermission("metadata:datafile:list")
     @PostMapping("/dataFile")
     public R<List<DataFileVO>> getDataFileInfo(@RequestBody MetadataDTO dto) {
         return R.succeed(metadataService.getDataFile(dto));
     }
 
+    @SaCheckPermission("metadata:options:list")
     @PostMapping("/options")
     public R<List<OptionVO>> getOptionInfo(@RequestBody MetadataDTO dto) {
         return R.succeed(metadataService.getOption(dto));
diff --git 
a/paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/TableController.java
 
b/paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/TableController.java
index 1f5af6b..672c666 100644
--- 
a/paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/TableController.java
+++ 
b/paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/TableController.java
@@ -25,6 +25,7 @@ import org.apache.paimon.web.server.data.result.enums.Status;
 import org.apache.paimon.web.server.data.vo.TableVO;
 import org.apache.paimon.web.server.service.TableService;
 
+import cn.dev33.satoken.annotation.SaCheckPermission;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -59,6 +60,7 @@ public class TableController {
      * @param tableDTO The TableDTO object containing information about the 
table
      * @return a {@code R<Void>} response indicating success or failure
      */
+    @SaCheckPermission("metadata:table:create")
     @PostMapping("/create")
     public R<Void> createTable(@RequestBody TableDTO tableDTO) {
         if (tableService.tableExists(tableDTO)) {
@@ -75,6 +77,7 @@ public class TableController {
      * @param tableDTO The TableDTO object containing information about the 
table
      * @return a {@code R<Void>} response indicating success or failure
      */
+    @SaCheckPermission("metadata:column:add")
     @PostMapping("/column/add")
     public R<Void> addColumn(@RequestBody TableDTO tableDTO) {
         return tableService.addColumn(tableDTO)
@@ -90,6 +93,7 @@ public class TableController {
      * @param tableName The name of the table
      * @return Response object containing {@link TableVO} representing the 
table
      */
+    @SaCheckPermission("metadata:column:list")
     @GetMapping("/column/list")
     public R<TableVO> listColumns(
             @RequestParam String catalogName,
@@ -107,6 +111,7 @@ public class TableController {
      * @param columnName The name of the column to be dropped
      * @return a {@code R<Void>} response indicating success or failure
      */
+    @SaCheckPermission("metadata:column:drop")
     
@DeleteMapping("/column/drop/{catalogName}/{databaseName}/{tableName}/{columnName}")
     public R<Void> dropColumn(
             @PathVariable String catalogName,
@@ -124,6 +129,7 @@ public class TableController {
      * @param alterTableDTO the DTO containing alteration details
      * @return a {@code R<Void>} response indicating success or failure
      */
+    @SaCheckPermission("metadata:table:update")
     @PostMapping("/alter")
     public R<Void> alterTable(@RequestBody AlterTableDTO alterTableDTO) {
         return tableService.alterTable(alterTableDTO)
@@ -137,6 +143,7 @@ public class TableController {
      * @param tableDTO The TableDTO object containing information about the 
table
      * @return a {@code R<Void>} response indicating success or failure
      */
+    @SaCheckPermission("metadata:option:add")
     @PostMapping("/option/add")
     public R<Void> addOption(@RequestBody TableDTO tableDTO) {
         return tableService.addOption(tableDTO)
@@ -153,6 +160,7 @@ public class TableController {
      * @param key The key of the option to be removed
      * @return a {@code R<Void>} response indicating success or failure
      */
+    @SaCheckPermission("metadata:option:remove")
     @PostMapping("/option/remove")
     public R<Void> removeOption(
             @RequestParam String catalogName,
@@ -172,6 +180,7 @@ public class TableController {
      * @param tableName The name of the table to be dropped
      * @return a {@code R<Void>} response indicating success or failure
      */
+    @SaCheckPermission("metadata:table:drop")
     @DeleteMapping("/drop/{catalogName}/{databaseName}/{tableName}")
     public R<Void> dropTable(
             @PathVariable String catalogName,
@@ -191,6 +200,7 @@ public class TableController {
      * @param toTableName The new name for the table
      * @return a {@code R<Void>} response indicating success or failure
      */
+    @SaCheckPermission("metadata:table:update")
     @PostMapping("/rename")
     public R<Void> renameTable(
             @RequestParam String catalogName,
@@ -207,6 +217,7 @@ public class TableController {
      *
      * @return Response object containing a list of {@link TableVO} 
representing the tables
      */
+    @SaCheckPermission("metadata:table:list")
     @PostMapping("/list")
     public R<Object> listTables(@RequestBody TableDTO tableDTO) {
         List<TableVO> tables = tableService.listTables(tableDTO);

Reply via email to