You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by jo...@apache.org on 2020/05/18 03:05:19 UTC
[incubator-dolphinscheduler] branch dev-1.3.0 updated: 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)
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 <18...@163.com>
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