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

aloyszhang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/inlong.git


The following commit(s) were added to refs/heads/master by this push:
     new 45b8394178 [INLONG-11608][Manager] Add permission verification for 
ordinary users to create streams and sinks (#11609)
45b8394178 is described below

commit 45b8394178da6a9bac1d2047656a93e3d352d208
Author: fuweng11 <[email protected]>
AuthorDate: Wed Dec 18 10:16:01 2024 +0800

    [INLONG-11608][Manager] Add permission verification for ordinary users to 
create streams and sinks (#11609)
---
 .../apache/inlong/manager/service/sink/StreamSinkServiceImpl.java | 7 ++++++-
 .../inlong/manager/service/source/StreamSourceServiceImpl.java    | 6 ++++++
 .../inlong/manager/service/stream/InlongStreamServiceImpl.java    | 7 ++++++-
 .../apache/inlong/manager/service/sort/SortServiceImplTest.java   | 8 ++++----
 4 files changed, 22 insertions(+), 6 deletions(-)

diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/sink/StreamSinkServiceImpl.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/sink/StreamSinkServiceImpl.java
index dab2cdc93a..a278bc51c0 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/sink/StreamSinkServiceImpl.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/sink/StreamSinkServiceImpl.java
@@ -153,7 +153,12 @@ public class StreamSinkServiceImpl implements 
StreamSinkService {
         // Check if it can be added
         String groupId = request.getInlongGroupId();
         groupCheckService.checkGroupStatus(groupId, operator);
-
+        InlongGroupEntity groupEntity = groupMapper.selectByGroupId(groupId);
+        if (groupEntity == null) {
+            throw new BusinessException(String.format("InlongGroup does not 
exist with InlongGroupId=%s", groupId));
+        }
+        userService.checkUser(groupEntity.getInCharges(), operator,
+                "Current user does not have permission to create sink info");
         // Make sure that there is no same sink name under the current groupId 
and streamId
         String streamId = request.getInlongStreamId();
         String sinkName = request.getSinkName();
diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/source/StreamSourceServiceImpl.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/source/StreamSourceServiceImpl.java
index 324c996910..04e3941500 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/source/StreamSourceServiceImpl.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/source/StreamSourceServiceImpl.java
@@ -105,6 +105,12 @@ public class StreamSourceServiceImpl implements 
StreamSourceService {
         // Check if it can be added
         String groupId = request.getInlongGroupId();
         String streamId = request.getInlongStreamId();
+        InlongGroupEntity groupEntity = groupMapper.selectByGroupId(groupId);
+        if (groupEntity == null) {
+            throw new BusinessException(String.format("InlongGroup does not 
exist with InlongGroupId=%s", groupId));
+        }
+        userService.checkUser(groupEntity.getInCharges(), operator,
+                "Current user does not have permission to create source info");
         InlongStreamEntity streamEntity = 
groupCheckService.checkStreamStatus(groupId, streamId, operator);
         String sourceName = request.getSourceName();
         List<StreamSourceEntity> existList = 
sourceMapper.selectByRelatedId(groupId, streamId, sourceName);
diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamServiceImpl.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamServiceImpl.java
index 101c39d24f..46f8fe5e94 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamServiceImpl.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamServiceImpl.java
@@ -166,7 +166,12 @@ public class InlongStreamServiceImpl implements 
InlongStreamService {
 
         // Check if it can be added
         checkGroupStatusIsTemp(groupId);
-
+        InlongGroupEntity groupEntity = groupMapper.selectByGroupId(groupId);
+        if (groupEntity == null) {
+            throw new BusinessException(String.format("InlongGroup does not 
exist with InlongGroupId=%s", groupId));
+        }
+        userService.checkUser(groupEntity.getInCharges(), operator,
+                "Current user does not have permission to create stream info");
         // The streamId under the same groupId cannot be repeated
         Integer count = streamMapper.selectExistByIdentifier(groupId, 
streamId);
         if (count >= 1) {
diff --git 
a/inlong-manager/manager-service/src/test/java/org/apache/inlong/manager/service/sort/SortServiceImplTest.java
 
b/inlong-manager/manager-service/src/test/java/org/apache/inlong/manager/service/sort/SortServiceImplTest.java
index 5032057db0..0bc5e9c54a 100644
--- 
a/inlong-manager/manager-service/src/test/java/org/apache/inlong/manager/service/sort/SortServiceImplTest.java
+++ 
b/inlong-manager/manager-service/src/test/java/org/apache/inlong/manager/service/sort/SortServiceImplTest.java
@@ -297,7 +297,7 @@ public class SortServiceImplTest extends ServiceBaseTest {
         request.setVersion(InlongConstants.INITIAL_VERSION);
         request.setName("test_group_name");
         request.setMqType(ClusterType.PULSAR);
-        request.setInCharges(TEST_CREATOR);
+        request.setInCharges(GLOBAL_OPERATOR);
         List<InlongGroupExtInfo> extList = new ArrayList<>();
         InlongGroupExtInfo ext1 = InlongGroupExtInfo
                 .builder()
@@ -315,7 +315,7 @@ public class SortServiceImplTest extends ServiceBaseTest {
         extList.add(ext1);
         extList.add(ext2);
         request.setExtList(extList);
-        groupService.save(request, "test operator");
+        groupService.save(request, GLOBAL_OPERATOR);
     }
 
     private void prepareStreamId(String groupId, String streamId, String 
topic) {
@@ -333,7 +333,7 @@ public class SortServiceImplTest extends ServiceBaseTest {
         ext.setKeyName(ClusterSwitch.BACKUP_MQ_RESOURCE);
         ext.setKeyValue("backup_" + topic);
         request.setExtList(extInfos);
-        streamService.save(request, "test_operator");
+        streamService.save(request, GLOBAL_OPERATOR);
     }
 
     private void prepareCluster(String clusterName, String clusterTag) {
@@ -382,7 +382,7 @@ public class SortServiceImplTest extends ServiceBaseTest {
         properties.put("delimiter", "|");
         properties.put("dataType", "text");
         request.setProperties(properties);
-        streamSinkService.save(request, TEST_CREATOR);
+        streamSinkService.save(request, GLOBAL_OPERATOR);
     }
 
 }

Reply via email to