提交 f0fda2a9 编写于 作者: 李脉旺's avatar 李脉旺 提交者: caishunfeng

add(dependent node's add unprivileged project list): dependent node's add...

add(dependent node's add unprivileged project list): dependent node's add unprivileged project list (#12073)
上级 280b7c85
...@@ -279,4 +279,19 @@ public class ProjectController extends BaseController { ...@@ -279,4 +279,19 @@ public class ProjectController extends BaseController {
public Result queryAllProjectList(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser) { public Result queryAllProjectList(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser) {
return projectService.queryAllProjectList(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();
}
} }
...@@ -288,4 +288,20 @@ public class ProjectV2Controller extends BaseController { ...@@ -288,4 +288,20 @@ public class ProjectV2Controller extends BaseController {
Result result = projectService.queryAllProjectList(loginUser); Result result = projectService.queryAllProjectList(loginUser);
return new ProjectListResponse(result); 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);
}
} }
...@@ -174,4 +174,10 @@ public interface ProjectService { ...@@ -174,4 +174,10 @@ public interface ProjectService {
*/ */
void checkProjectAndAuth(Result result, User loginUser, Project project, long projectCode, String perm); 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();
} }
...@@ -603,4 +603,19 @@ public class ProjectServiceImpl extends BaseServiceImpl implements ProjectServic ...@@ -603,4 +603,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;
}
} }
...@@ -301,4 +301,5 @@ TASK_DEFINITION_TAG=task definition related operation ...@@ -301,4 +301,5 @@ TASK_DEFINITION_TAG=task definition related operation
PROCESS_TASK_RELATION_TAG=process task relation related operation PROCESS_TASK_RELATION_TAG=process task relation related operation
ENVIRONMENT_TAG=environment related operation ENVIRONMENT_TAG=environment related operation
GET_PROCESS_LIST_BY_PROCESS_CODE_NOTES=query process definition list by project code 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 GET_TASK_LIST_BY_PROCESS_CODE_NOTES=query task definition list by process definition code
\ No newline at end of file QUERY_ALL_PROJECT_LIST_FOR_DEPENDENT_NOTES=query all project list for dependent
\ No newline at end of file
...@@ -360,4 +360,5 @@ TASK_DEFINITION_TAG=task definition related operation ...@@ -360,4 +360,5 @@ TASK_DEFINITION_TAG=task definition related operation
PROCESS_TASK_RELATION_TAG=process task relation related operation PROCESS_TASK_RELATION_TAG=process task relation related operation
ENVIRONMENT_TAG=environment related operation ENVIRONMENT_TAG=environment related operation
GET_PROCESS_LIST_BY_PROCESS_CODE_NOTES=query process definition list by project code 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 GET_TASK_LIST_BY_PROCESS_CODE_NOTES=query task definition list by process definition code
\ No newline at end of file QUERY_ALL_PROJECT_LIST_FOR_DEPENDENT_NOTES=query all project list for dependent
\ No newline at end of file
...@@ -357,4 +357,5 @@ TASK_DEFINITION_TAG=任务定义相关操作 ...@@ -357,4 +357,5 @@ TASK_DEFINITION_TAG=任务定义相关操作
PROCESS_TASK_RELATION_TAG=工作流关系相关操作 PROCESS_TASK_RELATION_TAG=工作流关系相关操作
ENVIRONMENT_TAG=环境相关操作 ENVIRONMENT_TAG=环境相关操作
GET_PROCESS_LIST_BY_PROCESS_CODE_NOTES=通过项目代码查询工作流定义 GET_PROCESS_LIST_BY_PROCESS_CODE_NOTES=通过项目代码查询工作流定义
GET_TASK_LIST_BY_PROCESS_CODE_NOTES=通过工作流定义代码查询任务定义 GET_TASK_LIST_BY_PROCESS_CODE_NOTES=通过工作流定义代码查询任务定义
\ No newline at end of file QUERY_ALL_PROJECT_LIST_FOR_DEPENDENT_NOTES=查询Dependent节点所有项目
...@@ -141,7 +141,16 @@ public class ProjectControllerTest { ...@@ -141,7 +141,16 @@ public class ProjectControllerTest {
Result response = projectController.queryAllProjectList(user); Result response = projectController.queryAllProjectList(user);
Assert.assertEquals(Status.SUCCESS.getCode(), response.getCode().intValue()); 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() { private Project getProject() {
Project project = new Project(); Project project = new Project();
project.setCode(1L); project.setCode(1L);
......
...@@ -76,7 +76,7 @@ public class ProjectV2ControllerTest { ...@@ -76,7 +76,7 @@ public class ProjectV2ControllerTest {
projectUpdateReq.setDescription("james lbj"); projectUpdateReq.setDescription("james lbj");
projectUpdateReq.setUserName("admin"); projectUpdateReq.setUserName("admin");
Mockito.when(projectService.update(user, projectCode, projectUpdateReq.getProjectName(), Mockito.when(projectService.update(user, projectCode, projectUpdateReq.getProjectName(),
projectUpdateReq.getDescription(), projectUpdateReq.getUserName())).thenReturn(result); projectUpdateReq.getDescription(), projectUpdateReq.getUserName())).thenReturn(result);
Result response = projectV2Controller.updateProject(user, projectCode, projectUpdateReq); Result response = projectV2Controller.updateProject(user, projectCode, projectUpdateReq);
Assert.assertEquals(Status.SUCCESS.getCode(), response.getCode().intValue()); Assert.assertEquals(Status.SUCCESS.getCode(), response.getCode().intValue());
} }
...@@ -101,7 +101,7 @@ public class ProjectV2ControllerTest { ...@@ -101,7 +101,7 @@ public class ProjectV2ControllerTest {
Result result = Result.success(new PageInfo<Resource>(1, 10)); Result result = Result.success(new PageInfo<Resource>(1, 10));
Mockito.when(projectService.queryProjectListPaging(user, projectQueryReq.getPageSize(), Mockito.when(projectService.queryProjectListPaging(user, projectQueryReq.getPageSize(),
projectQueryReq.getPageNo(), projectQueryReq.getSearchVal())).thenReturn(result); projectQueryReq.getPageNo(), projectQueryReq.getSearchVal())).thenReturn(result);
Result response = projectV2Controller.queryProjectListPaging(user, projectQueryReq); Result response = projectV2Controller.queryProjectListPaging(user, projectQueryReq);
Assert.assertTrue(response != null && response.isSuccess()); Assert.assertTrue(response != null && response.isSuccess());
} }
...@@ -144,6 +144,16 @@ public class ProjectV2ControllerTest { ...@@ -144,6 +144,16 @@ public class ProjectV2ControllerTest {
Result response = projectV2Controller.queryAllProjectList(user); Result response = projectV2Controller.queryAllProjectList(user);
Assert.assertEquals(Status.SUCCESS.getCode(), response.getCode().intValue()); 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() { private Project getProject() {
Project project = new Project(); Project project = new Project();
......
...@@ -403,6 +403,16 @@ public class ProjectServiceTest { ...@@ -403,6 +403,16 @@ public class ProjectServiceTest {
List<Project> projects = (List<Project>) result.getData(); List<Project> projects = (List<Project>) result.getData();
Assert.assertTrue(CollectionUtils.isNotEmpty(projects)); 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 @Test
......
...@@ -32,6 +32,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -32,6 +32,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
* project mapper interface * project mapper interface
*/ */
public interface ProjectMapper extends BaseMapper<Project> { public interface ProjectMapper extends BaseMapper<Project> {
/** /**
* query project detail by code * query project detail by code
* @param projectCode projectCode * @param projectCode projectCode
...@@ -128,7 +129,6 @@ public interface ProjectMapper extends BaseMapper<Project> { ...@@ -128,7 +129,6 @@ public interface ProjectMapper extends BaseMapper<Project> {
*/ */
List<Project> queryAllProject(@Param("userId") int userId); List<Project> queryAllProject(@Param("userId") int userId);
/** /**
* list authorized Projects * list authorized Projects
* @param userId * @param userId
...@@ -136,5 +136,11 @@ public interface ProjectMapper extends BaseMapper<Project> { ...@@ -136,5 +136,11 @@ public interface ProjectMapper extends BaseMapper<Project> {
* @param <T> * @param <T>
* @return * @return
*/ */
List<Project> listAuthorizedProjects(@Param("userId") int userId, @Param("projectsIds")List<Integer> projectsIds); List<Project> listAuthorizedProjects(@Param("userId") int userId, @Param("projectsIds") List<Integer> projectsIds);
/**
* query all project for dependent node
* @return projectList
*/
List<Project> queryAllProjectForDependent();
} }
...@@ -180,4 +180,9 @@ ...@@ -180,4 +180,9 @@
union select id as project_id from t_ds_project where user_id=#{userId}) union select id as project_id from t_ds_project where user_id=#{userId})
</if> </if>
</select> </select>
<select id="queryAllProjectForDependent" resultType="org.apache.dolphinscheduler.dao.entity.Project">
select code, name
from t_ds_project
</select>
</mapper> </mapper>
...@@ -85,3 +85,10 @@ export function deleteProject(code: number): any { ...@@ -85,3 +85,10 @@ export function deleteProject(code: number): any {
method: 'delete' method: 'delete'
}) })
} }
export function queryAllProjectListForDependent(): any {
return axios({
url: '/projects/list-dependent',
method: 'get'
})
}
...@@ -20,7 +20,7 @@ import { useI18n } from 'vue-i18n' ...@@ -20,7 +20,7 @@ import { useI18n } from 'vue-i18n'
import { NEllipsis, NIcon } from 'naive-ui' import { NEllipsis, NIcon } from 'naive-ui'
import { useRelationCustomParams, useDependentTimeout } from '.' import { useRelationCustomParams, useDependentTimeout } from '.'
import { useTaskNodeStore } from '@/store/project/task-node' 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 { tasksState } from '@/common/common'
import { import {
queryProcessDefinitionList, queryProcessDefinitionList,
...@@ -176,7 +176,7 @@ export function useDependent(model: { [field: string]: any }): IJsonItem[] { ...@@ -176,7 +176,7 @@ export function useDependent(model: { [field: string]: any }): IJsonItem[] {
} as { [key in IDateType]: { value: string; label: string }[] } } as { [key in IDateType]: { value: string; label: string }[] }
const getProjectList = async () => { const getProjectList = async () => {
const result = await queryAllProjectList() const result = await queryAllProjectListForDependent()
projectList.value = result.map((item: { code: number; name: string }) => ({ projectList.value = result.map((item: { code: number; name: string }) => ({
value: item.code, value: item.code,
label: () => h(NEllipsis, null, item.name) label: () => h(NEllipsis, null, item.name)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册