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