You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by wa...@apache.org on 2022/09/21 01:28:30 UTC
[dolphinscheduler] branch dev updated: add(dependent node's add unprivileged project list): dependent node's add unprivileged project list (#12073)
This is an automated email from the ASF dual-hosted git repository.
wanggenhua 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 ed1d1e8856 add(dependent node's add unprivileged project list): dependent node's add unprivileged project list (#12073)
ed1d1e8856 is described below
commit ed1d1e885622f2fe45957998d475b7b6dcfb6328
Author: limaiwang <li...@163.com>
AuthorDate: Wed Sep 21 09:28:22 2022 +0800
add(dependent node's add unprivileged project list): dependent node's add unprivileged project list (#12073)
---
.../api/controller/ProjectController.java | 15 +++++++++++++++
.../api/controller/ProjectV2Controller.java | 16 ++++++++++++++++
.../dolphinscheduler/api/service/ProjectService.java | 6 ++++++
.../api/service/impl/ProjectServiceImpl.java | 15 +++++++++++++++
.../src/main/resources/i18n/messages.properties | 1 +
.../src/main/resources/i18n/messages_en_US.properties | 1 +
.../src/main/resources/i18n/messages_zh_CN.properties | 1 +
.../api/controller/ProjectControllerTest.java | 11 ++++++++++-
.../api/controller/ProjectV2ControllerTest.java | 10 ++++++++++
.../dolphinscheduler/api/service/ProjectServiceTest.java | 10 ++++++++++
.../dolphinscheduler/dao/mapper/ProjectMapper.java | 6 ++++++
.../apache/dolphinscheduler/dao/mapper/ProjectMapper.xml | 5 +++++
.../src/service/modules/projects/index.ts | 7 +++++++
.../task/components/node/fields/use-dependent.ts | 4 ++--
14 files changed, 105 insertions(+), 3 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 e957a379f5..a53bdcc550 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
@@ -284,4 +284,19 @@ public class ProjectController extends BaseController {
public Result queryAllProjectList(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser) {
return projectService.queryAllProjectList(loginUser);
}
+
+ /**
+ * query all project list for dependent
+ *
+ * @param loginUser login user
+ * @return all project list
+ */
+ @ApiOperation(value = "queryAllProjectListForDependent", notes = "QUERY_ALL_PROJECT_LIST_FOR_DEPENDENT_NOTES")
+ @GetMapping(value = "/list-dependent")
+ @ResponseStatus(HttpStatus.OK)
+ @ApiException(LOGIN_USER_QUERY_PROJECT_LIST_PAGING_ERROR)
+ @AccessLogAnnotation(ignoreRequestArgs = "loginUser")
+ public Result queryAllProjectListForDependent(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser) {
+ return projectService.queryAllProjectListForDependent();
+ }
}
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ProjectV2Controller.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ProjectV2Controller.java
index a0e2488e90..035bfcc67e 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ProjectV2Controller.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ProjectV2Controller.java
@@ -288,4 +288,20 @@ public class ProjectV2Controller extends BaseController {
Result result = projectService.queryAllProjectList(loginUser);
return new ProjectListResponse(result);
}
+
+ /**
+ * query all project list for dependent
+ *
+ * @param loginUser login user
+ * @return all project list
+ */
+ @ApiOperation(value = "queryAllProjectListForDependent", notes = "QUERY_ALL_PROJECT_LIST_FOR_DEPENDENT_NOTES")
+ @GetMapping(value = "/list-dependent")
+ @ResponseStatus(HttpStatus.OK)
+ @ApiException(LOGIN_USER_QUERY_PROJECT_LIST_PAGING_ERROR)
+ @AccessLogAnnotation(ignoreRequestArgs = "loginUser")
+ public ProjectListResponse queryAllProjectListForDependent(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser) {
+ Result result = projectService.queryAllProjectListForDependent();
+ return new ProjectListResponse(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 bec972868d..a0d7217766 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
@@ -174,4 +174,10 @@ public interface ProjectService {
*/
void checkProjectAndAuth(Result result, User loginUser, Project project, long projectCode, String perm);
+ /**
+ * the project list in dependent node's permissions should not be restricted
+ * @return project list
+ */
+ Result queryAllProjectListForDependent();
+
}
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 59d4329047..bd43e549b4 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
@@ -626,4 +626,19 @@ public class ProjectServiceImpl extends BaseServiceImpl implements ProjectServic
}
}
+ /**
+ * query all project for dependent node
+ *
+ * @return project list
+ */
+ @Override
+ public Result queryAllProjectListForDependent() {
+ Result result = new Result<>();
+ List<Project> projects =
+ projectMapper.queryAllProjectForDependent();
+ result.setData(projects);
+ putMsg(result, Status.SUCCESS);
+ return result;
+ }
+
}
diff --git a/dolphinscheduler-api/src/main/resources/i18n/messages.properties b/dolphinscheduler-api/src/main/resources/i18n/messages.properties
index 53a0ca0fda..59669f9e2e 100644
--- a/dolphinscheduler-api/src/main/resources/i18n/messages.properties
+++ b/dolphinscheduler-api/src/main/resources/i18n/messages.properties
@@ -302,3 +302,4 @@ PROCESS_TASK_RELATION_TAG=process task relation related operation
ENVIRONMENT_TAG=environment related operation
GET_PROCESS_LIST_BY_PROCESS_CODE_NOTES=query process definition list by project code
GET_TASK_LIST_BY_PROCESS_CODE_NOTES=query task definition list by process definition code
+QUERY_ALL_PROJECT_LIST_FOR_DEPENDENT_NOTES=query all project list for dependent
diff --git a/dolphinscheduler-api/src/main/resources/i18n/messages_en_US.properties b/dolphinscheduler-api/src/main/resources/i18n/messages_en_US.properties
index 3905de7e04..7f825464d9 100644
--- a/dolphinscheduler-api/src/main/resources/i18n/messages_en_US.properties
+++ b/dolphinscheduler-api/src/main/resources/i18n/messages_en_US.properties
@@ -361,3 +361,4 @@ PROCESS_TASK_RELATION_TAG=process task relation related operation
ENVIRONMENT_TAG=environment related operation
GET_PROCESS_LIST_BY_PROCESS_CODE_NOTES=query process definition list by project code
GET_TASK_LIST_BY_PROCESS_CODE_NOTES=query task definition list by process definition code
+QUERY_ALL_PROJECT_LIST_FOR_DEPENDENT_NOTES=query all project list for dependent
diff --git a/dolphinscheduler-api/src/main/resources/i18n/messages_zh_CN.properties b/dolphinscheduler-api/src/main/resources/i18n/messages_zh_CN.properties
index 64cec045cb..3ab39b13c9 100644
--- a/dolphinscheduler-api/src/main/resources/i18n/messages_zh_CN.properties
+++ b/dolphinscheduler-api/src/main/resources/i18n/messages_zh_CN.properties
@@ -358,3 +358,4 @@ PROCESS_TASK_RELATION_TAG=工作流关系相关操作
ENVIRONMENT_TAG=环境相关操作
GET_PROCESS_LIST_BY_PROCESS_CODE_NOTES=通过项目代码查询工作流定义
GET_TASK_LIST_BY_PROCESS_CODE_NOTES=通过工作流定义代码查询任务定义
+QUERY_ALL_PROJECT_LIST_FOR_DEPENDENT_NOTES=查询Dependent节点所有项目
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 b13ed89878..650ca2a3fc 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
@@ -141,7 +141,16 @@ public class ProjectControllerTest {
Result response = projectController.queryAllProjectList(user);
Assert.assertEquals(Status.SUCCESS.getCode(), response.getCode().intValue());
}
-
+ @Test
+ public void testQueryAllProjectListForDependent() {
+ User user = new User();
+ user.setId(0);
+ Result result = new Result();
+ putMsg(result, Status.SUCCESS);
+ Mockito.when(projectService.queryAllProjectListForDependent()).thenReturn(result);
+ Result response = projectController.queryAllProjectListForDependent(user);
+ Assert.assertEquals(Status.SUCCESS.getCode(), response.getCode().intValue());
+ }
private Project getProject() {
Project project = new Project();
project.setCode(1L);
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/ProjectV2ControllerTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/ProjectV2ControllerTest.java
index 3a9c69da3c..eafc3794a4 100644
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/ProjectV2ControllerTest.java
+++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/ProjectV2ControllerTest.java
@@ -144,6 +144,16 @@ public class ProjectV2ControllerTest {
Result response = projectV2Controller.queryAllProjectList(user);
Assert.assertEquals(Status.SUCCESS.getCode(), response.getCode().intValue());
}
+ @Test
+ public void testQueryAllProjectListForDependent() {
+ User user = new User();
+ user.setId(0);
+ Result result = new Result();
+ putMsg(result, Status.SUCCESS);
+ Mockito.when(projectService.queryAllProjectListForDependent()).thenReturn(result);
+ Result response = projectV2Controller.queryAllProjectListForDependent(user);
+ Assert.assertEquals(Status.SUCCESS.getCode(), response.getCode().intValue());
+ }
private Project getProject() {
Project project = new Project();
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 c35a31ec60..eaf8d6cff3 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
@@ -403,6 +403,16 @@ public class ProjectServiceTest {
List<Project> projects = (List<Project>) result.getData();
Assert.assertTrue(CollectionUtils.isNotEmpty(projects));
+ }
+ @Test
+ public void queryAllProjectListForDependent() {
+ Mockito.when(projectMapper.queryAllProjectForDependent()).thenReturn(getList());
+
+ Result result = projectService.queryAllProjectListForDependent();
+ logger.info(result.toString());
+ List<Project> projects = (List<Project>) result.getData();
+ Assert.assertTrue(CollectionUtils.isNotEmpty(projects));
+
}
@Test
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 6bd4c4be5f..3a3c314b36 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
@@ -137,4 +137,10 @@ public interface ProjectMapper extends BaseMapper<Project> {
* @return
*/
List<Project> listAuthorizedProjects(@Param("userId") int userId, @Param("projectsIds")List<Integer> projectsIds);
+
+ /**
+ * query all project for dependent node
+ * @return projectList
+ */
+ List<Project> queryAllProjectForDependent();
}
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 96a095d186..d01d970ee1 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
@@ -180,4 +180,9 @@
union select id as project_id from t_ds_project where user_id=#{userId})
</if>
</select>
+
+ <select id="queryAllProjectForDependent" resultType="org.apache.dolphinscheduler.dao.entity.Project">
+ select code, name
+ from t_ds_project
+ </select>
</mapper>
diff --git a/dolphinscheduler-ui/src/service/modules/projects/index.ts b/dolphinscheduler-ui/src/service/modules/projects/index.ts
index 555fec1ab6..69e097c7b8 100644
--- a/dolphinscheduler-ui/src/service/modules/projects/index.ts
+++ b/dolphinscheduler-ui/src/service/modules/projects/index.ts
@@ -85,3 +85,10 @@ export function deleteProject(code: number): any {
method: 'delete'
})
}
+
+export function queryAllProjectListForDependent(): any {
+ return axios({
+ url: '/projects/list-dependent',
+ method: 'get'
+ })
+}
diff --git a/dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-dependent.ts b/dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-dependent.ts
index 9589a38f08..1e714a1475 100644
--- a/dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-dependent.ts
+++ b/dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-dependent.ts
@@ -20,7 +20,7 @@ import { useI18n } from 'vue-i18n'
import { NEllipsis, NIcon } from 'naive-ui'
import { useRelationCustomParams, useDependentTimeout } from '.'
import { useTaskNodeStore } from '@/store/project/task-node'
-import { queryAllProjectList } from '@/service/modules/projects'
+import { queryAllProjectListForDependent } from '@/service/modules/projects'
import { tasksState } from '@/common/common'
import {
queryProcessDefinitionList,
@@ -176,7 +176,7 @@ export function useDependent(model: { [field: string]: any }): IJsonItem[] {
} as { [key in IDateType]: { value: string; label: string }[] }
const getProjectList = async () => {
- const result = await queryAllProjectList()
+ const result = await queryAllProjectListForDependent()
projectList.value = result.map((item: { code: number; name: string }) => ({
value: item.code,
label: () => h(NEllipsis, null, item.name)