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

journey pushed a commit to branch dev-1.3.0
in repository https://gitbox.apache.org/repos/asf/incubator-dolphinscheduler.git


The following commit(s) were added to refs/heads/dev-1.3.0 by this push:
     new f52bad5  fix #2449:It's should successful to cancel authorize a 
resource of a user if all the online process definitions created by this user 
didn't use this resource. (#2725)
f52bad5 is described below

commit f52bad5e8c6aa177189627312e42ae1808b4abd7
Author: lgcareer <[email protected]>
AuthorDate: Mon May 18 11:05:12 2020 +0800

    fix #2449:It's should successful to cancel authorize a resource of a user 
if all the online process definitions created by this user didn't use this 
resource. (#2725)
---
 .../org/apache/dolphinscheduler/api/service/UsersService.java    | 2 +-
 .../dolphinscheduler/dao/mapper/ProcessDefinitionMapper.java     | 7 +++++++
 .../dolphinscheduler/dao/mapper/ProcessDefinitionMapper.xml      | 6 ++++++
 .../dolphinscheduler/dao/mapper/ProcessDefinitionMapperTest.java | 9 +++++++++
 4 files changed, 23 insertions(+), 1 deletion(-)

diff --git 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UsersService.java
 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UsersService.java
index 220b4fc..f2bf447 100644
--- 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UsersService.java
+++ 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UsersService.java
@@ -511,7 +511,7 @@ public class UsersService extends BaseService {
         if (CollectionUtils.isNotEmpty(oldAuthorizedResIds)) {
 
             // get all resource id of process definitions those is released
-            List<Map<String, Object>> list = 
processDefinitionMapper.listResources();
+            List<Map<String, Object>> list = 
processDefinitionMapper.listResourcesByUser(userId);
             Map<Integer, Set<Integer>> resourceProcessMap = 
ResourceProcessDefinitionUtils.getResourceProcessDefinitionMap(list);
             Set<Integer> resourceIdSet = resourceProcessMap.keySet();
 
diff --git 
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionMapper.java
 
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionMapper.java
index b75bb58..4df93f2 100644
--- 
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionMapper.java
+++ 
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionMapper.java
@@ -102,4 +102,11 @@ public interface ProcessDefinitionMapper extends 
BaseMapper<ProcessDefinition> {
      */
     @MapKey("id")
     List<Map<String, Object>> listResources();
+
+    /**
+     * list all resource ids by user id
+     * @return resource ids list
+     */
+    @MapKey("id")
+    List<Map<String, Object>> listResourcesByUser(@Param("userId") Integer 
userId);
 }
diff --git 
a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionMapper.xml
 
b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionMapper.xml
index 0cabf80..3e538a2 100644
--- 
a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionMapper.xml
+++ 
b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionMapper.xml
@@ -96,4 +96,10 @@
         FROM t_ds_process_definition
         WHERE release_state = 1 and resource_ids is not null and resource_ids 
!= ''
     </select>
+
+    <select id="listResourcesByUser" resultType="java.util.HashMap">
+        SELECT id,resource_ids
+        FROM t_ds_process_definition
+        WHERE user_id = #{userId} and release_state = 1 and resource_ids is 
not null and resource_ids != ''
+    </select>
 </mapper>
\ No newline at end of file
diff --git 
a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionMapperTest.java
 
b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionMapperTest.java
index e92ec54..7f0cf97 100644
--- 
a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionMapperTest.java
+++ 
b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/ProcessDefinitionMapperTest.java
@@ -242,4 +242,13 @@ public class ProcessDefinitionMapperTest {
         List<Map<String, Object>> maps = 
processDefinitionMapper.listResources();
         Assert.assertNotNull(maps);
     }
+
+    @Test
+    public void listResourcesByUserTest(){
+        ProcessDefinition processDefinition = insertOne();
+        processDefinition.setResourceIds("3,5");
+        processDefinition.setReleaseState(ReleaseState.ONLINE);
+        List<Map<String, Object>> maps = 
processDefinitionMapper.listResourcesByUser(processDefinition.getUserId());
+        Assert.assertNotNull(maps);
+    }
 }
\ No newline at end of file

Reply via email to