You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by ca...@apache.org on 2022/04/20 10:24:52 UTC

[dolphinscheduler] branch dev updated: [Fix-9617]New task group project name drop-down data is displayed according to user type. (#9625)

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

caishunfeng pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/dev by this push:
     new ae84900329 [Fix-9617]New task group project name drop-down data is displayed according to user type. (#9625)
ae84900329 is described below

commit ae849003293417e72bb57bf5019d10f02ea61b0f
Author: WangJPLeo <10...@users.noreply.github.com>
AuthorDate: Wed Apr 20 18:24:45 2022 +0800

    [Fix-9617]New task group project name drop-down data is displayed according to user type. (#9625)
    
    * New task group project name drop-down data by user type
    
    * remove unused import
    
    * avoid import *
    
    Co-authored-by: WangJPLeo <wa...@whaleops.com>
---
 .../dolphinscheduler/api/controller/ProjectController.java |  2 +-
 .../dolphinscheduler/api/service/ProjectService.java       |  4 ++--
 .../api/service/impl/ProjectServiceImpl.java               | 14 ++++++++++----
 .../api/controller/ProjectControllerTest.java              |  4 +++-
 .../dolphinscheduler/api/service/ProjectServiceTest.java   |  6 ++++--
 .../apache/dolphinscheduler/dao/mapper/ProjectMapper.java  |  3 ++-
 .../apache/dolphinscheduler/dao/mapper/ProjectMapper.xml   |  4 ++++
 7 files changed, 26 insertions(+), 11 deletions(-)

diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ProjectController.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ProjectController.java
index 0eff931c7f..1dd4a2a07d 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ProjectController.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ProjectController.java
@@ -287,7 +287,7 @@ public class ProjectController extends BaseController {
     @ApiException(LOGIN_USER_QUERY_PROJECT_LIST_PAGING_ERROR)
     @AccessLogAnnotation(ignoreRequestArgs = "loginUser")
     public Result queryAllProjectList(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser) {
-        Map<String, Object> result = projectService.queryAllProjectList();
+        Map<String, Object> result = projectService.queryAllProjectList(loginUser);
         return returnDataList(result);
     }
 }
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ProjectService.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ProjectService.java
index 38c0c53386..aae441e4bc 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ProjectService.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ProjectService.java
@@ -138,10 +138,10 @@ public interface ProjectService {
 
     /**
      * query all project list that have one or more process definitions.
-     *
+     * @param loginUser
      * @return project list
      */
-    Map<String, Object> queryAllProjectList();
+    Map<String, Object> queryAllProjectList(User loginUser);
 
     /**
      * query authorized and user create project list by user id
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProjectServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProjectServiceImpl.java
index ddebaa782c..e10a83f8e1 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProjectServiceImpl.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProjectServiceImpl.java
@@ -38,7 +38,13 @@ import org.apache.dolphinscheduler.dao.mapper.UserMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 import static org.apache.dolphinscheduler.api.utils.CheckUtils.checkDesc;
 
@@ -500,13 +506,13 @@ public class ProjectServiceImpl extends BaseServiceImpl implements ProjectServic
 
     /**
      * query all project list
-     *
+     * @param user
      * @return project list
      */
     @Override
-    public Map<String, Object> queryAllProjectList() {
+    public Map<String, Object> queryAllProjectList(User user) {
         Map<String, Object> result = new HashMap<>();
-        List<Project> projects = projectMapper.queryAllProject();
+        List<Project> projects = projectMapper.queryAllProject(user.getUserType() == UserType.ADMIN_USER ? 0 : user.getId());
 
         result.put(Constants.DATA_LIST, projects);
         putMsg(result, Status.SUCCESS);
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/ProjectControllerTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/ProjectControllerTest.java
index 118484c4c9..8aca9a23a7 100644
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/ProjectControllerTest.java
+++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/ProjectControllerTest.java
@@ -137,9 +137,11 @@ public class ProjectControllerTest {
 
     @Test
     public void testQueryAllProjectList() {
+        User user = new User();
+        user.setId(0);
         Map<String, Object> result = new HashMap<>();
         putMsg(result, Status.SUCCESS);
-        Mockito.when(projectService.queryAllProjectList()).thenReturn(result);
+        Mockito.when(projectService.queryAllProjectList(user)).thenReturn(result);
         Result response = projectController.queryAllProjectList(user);
         Assert.assertEquals(Status.SUCCESS.getCode(), response.getCode().intValue());
     }
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProjectServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProjectServiceTest.java
index 0c5579b685..2f83fcc78e 100644
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProjectServiceTest.java
+++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProjectServiceTest.java
@@ -345,9 +345,11 @@ public class ProjectServiceTest {
 
     @Test
     public void testQueryAllProjectList() {
-        Mockito.when(projectMapper.queryAllProject()).thenReturn(getList());
+        Mockito.when(projectMapper.queryAllProject(0)).thenReturn(getList());
 
-        Map<String, Object> result = projectService.queryAllProjectList();
+        User user = new User();
+        user.setId(0);
+        Map<String, Object> result = projectService.queryAllProjectList(user);
         logger.info(result.toString());
         List<Project> projects = (List<Project>) result.get(Constants.DATA_LIST);
         Assert.assertTrue(CollectionUtils.isNotEmpty(projects));
diff --git a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ProjectMapper.java b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ProjectMapper.java
index ce1f845687..f31fc11088 100644
--- a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ProjectMapper.java
+++ b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ProjectMapper.java
@@ -123,7 +123,8 @@ public interface ProjectMapper extends BaseMapper<Project> {
 
     /**
      * query all project
+     * @param userId
      * @return projectList
      */
-    List<Project> queryAllProject();
+    List<Project> queryAllProject(@Param("userId") int userId);
 }
diff --git a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ProjectMapper.xml b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ProjectMapper.xml
index 26602a8bcb..549afdfcb6 100644
--- a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ProjectMapper.xml
+++ b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ProjectMapper.xml
@@ -164,5 +164,9 @@
         select
         <include refid="baseSql"/>
         from t_ds_project
+        where 1=1
+        <if test="userId != 0">
+            and user_id = #{userId}
+        </if>
     </select>
 </mapper>