[Fix][api] Add queryProjectCreatedAndAuthorizedByUser function (#3658)
* fix getLoginUserCreated bug * fix getLoginUserCreated bug 1 * fix checkstyle * modify function name * modify comment * fix unit test error * rollback sqoop task hive target file Co-authored-by: sunchaohe <sunzhaohe@linklogis.com> Co-authored-by: dailidong <dailidong66@gmail.com>revert-4031-133-merge-dev
parent
44259688ba
commit
8fd3932bff
|
|
@ -228,21 +228,20 @@ public class ProjectController extends BaseController {
|
|||
}
|
||||
|
||||
/**
|
||||
* query user created project
|
||||
* query authorized and user created project
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @return projects which the user create
|
||||
* @return projects which the user create and authorized
|
||||
*/
|
||||
@ApiOperation(value = "queryProjectCreatedByUser", notes = "QUERY_USER_CREATED_PROJECT_NOTES")
|
||||
|
||||
@GetMapping(value = "/login-user-created-project")
|
||||
@ApiOperation(value = "queryProjectCreatedAndAuthorizedByUser", notes = "QUERY_AUTHORIZED_AND_USER_CREATED_PROJECT_NOTES")
|
||||
@GetMapping(value = "/created-and-authorized-project")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ApiException(QUERY_USER_CREATED_PROJECT_ERROR)
|
||||
public Result queryProjectCreatedByUser(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser) {
|
||||
logger.info("login user {}, query authorized project by user id: {}.",
|
||||
@ApiException(QUERY_AUTHORIZED_AND_USER_CREATED_PROJECT_ERROR)
|
||||
public Result queryProjectCreatedAndAuthorizedByUser(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser) {
|
||||
logger.info("login user {}, query authorized and user created project by user id: {}.",
|
||||
StringUtils.replaceNRTtoUnderline(loginUser.getUserName()),
|
||||
StringUtils.replaceNRTtoUnderline(String.valueOf(loginUser.getId())));
|
||||
Map<String, Object> result = projectService.queryProjectCreatedByUser(loginUser);
|
||||
Map<String, Object> result = projectService.queryProjectCreatedAndAuthorizedByUser(loginUser);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -193,9 +193,9 @@ public enum Status {
|
|||
BATCH_COPY_PROCESS_DEFINITION_ERROR(10159, "batch copy process definition error", "复制工作流错误"),
|
||||
BATCH_MOVE_PROCESS_DEFINITION_ERROR(10160, "batch move process definition error", "移动工作流错误"),
|
||||
QUERY_WORKFLOW_LINEAGE_ERROR(10161, "query workflow lineage error", "查询血缘失败"),
|
||||
DELETE_PROCESS_DEFINITION_BY_ID_FAIL(10162, "delete process definition by id fail, for there are {0} process instances in executing using it", "删除工作流定义失败,有[{0}]个运行中的工作流实例正在使用"),
|
||||
CHECK_TENANT_CODE_ERROR(10163, "Please enter the English tenant code", "请输入英文租户编码"),
|
||||
|
||||
QUERY_AUTHORIZED_AND_USER_CREATED_PROJECT_ERROR(10162, "query authorized and user created project error error", "查询授权的和用户创建的项目错误"),
|
||||
DELETE_PROCESS_DEFINITION_BY_ID_FAIL(10163,"delete process definition by id fail, for there are {0} process instances in executing using it", "删除工作流定义失败,有[{0}]个运行中的工作流实例正在使用"),
|
||||
CHECK_TENANT_CODE_ERROR(10164, "Please enter the English tenant code", "请输入英文租户编码"),
|
||||
|
||||
UDF_FUNCTION_NOT_EXIST(20001, "UDF function not found", "UDF函数不存在"),
|
||||
UDF_FUNCTION_EXISTS(20002, "UDF function already exists", "UDF函数已存在"),
|
||||
|
|
|
|||
|
|
@ -120,4 +120,11 @@ public interface ProjectService {
|
|||
*/
|
||||
Map<String, Object> queryAllProjectList();
|
||||
|
||||
/**
|
||||
* query authorized and user create project list by user id
|
||||
* @param loginUser
|
||||
* @return
|
||||
*/
|
||||
Map<String, Object> queryProjectCreatedAndAuthorizedByUser(User loginUser);
|
||||
|
||||
}
|
||||
|
|
@ -375,6 +375,28 @@ public class ProjectServiceImpl extends BaseService implements ProjectService {
|
|||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* query authorized and user create project list by user
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @return
|
||||
*/
|
||||
public Map<String, Object> queryProjectCreatedAndAuthorizedByUser(User loginUser) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
|
||||
List<Project> projects = null;
|
||||
if (loginUser.getUserType() == UserType.ADMIN_USER) {
|
||||
projects = projectMapper.selectList(null);
|
||||
} else {
|
||||
projects = projectMapper.queryProjectCreatedAndAuthorizedByUserId(loginUser.getId());
|
||||
}
|
||||
|
||||
result.put(Constants.DATA_LIST, projects);
|
||||
putMsg(result, Status.SUCCESS);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* check whether have read permission
|
||||
*
|
||||
|
|
|
|||
|
|
@ -254,6 +254,7 @@ QUERY_ALERT_GROUP_LIST_PAGING_NOTES=query alert group list paging
|
|||
EXPORT_PROCESS_DEFINITION_BY_ID_NOTES=export process definition by id
|
||||
BATCH_EXPORT_PROCESS_DEFINITION_BY_IDS_NOTES= batch export process definition by ids
|
||||
QUERY_USER_CREATED_PROJECT_NOTES= query user created project
|
||||
QUERY_AUTHORIZED_AND_USER_CREATED_PROJECT_NOTES= query authorized and user created project
|
||||
COPY_PROCESS_DEFINITION_NOTES= copy process definition notes
|
||||
MOVE_PROCESS_DEFINITION_NOTES= move process definition notes
|
||||
TARGET_PROJECT_ID= target project id
|
||||
|
|
|
|||
|
|
@ -254,6 +254,7 @@ QUERY_ALERT_GROUP_LIST_PAGING_NOTES=query alert group list paging
|
|||
EXPORT_PROCESS_DEFINITION_BY_ID_NOTES=export process definition by id
|
||||
BATCH_EXPORT_PROCESS_DEFINITION_BY_IDS_NOTES= batch export process definition by ids
|
||||
QUERY_USER_CREATED_PROJECT_NOTES= query user created project
|
||||
QUERY_AUTHORIZED_AND_USER_CREATED_PROJECT_NOTES= query authorized and user created project
|
||||
COPY_PROCESS_DEFINITION_NOTES= copy process definition notes
|
||||
MOVE_PROCESS_DEFINITION_NOTES= move process definition notes
|
||||
TARGET_PROJECT_ID= target project id
|
||||
|
|
|
|||
|
|
@ -252,6 +252,7 @@ QUERY_ALERT_GROUP_LIST_PAGING_NOTES=分页查询告警组列表
|
|||
EXPORT_PROCESS_DEFINITION_BY_ID_NOTES=通过工作流ID导出工作流定义
|
||||
BATCH_EXPORT_PROCESS_DEFINITION_BY_IDS_NOTES=批量导出工作流定义
|
||||
QUERY_USER_CREATED_PROJECT_NOTES= 查询用户创建的项目
|
||||
QUERY_AUTHORIZED_AND_USER_CREATED_PROJECT_NOTES= 查询授权和用户创建的项目
|
||||
COPY_PROCESS_DEFINITION_NOTES= 复制工作流定义
|
||||
MOVE_PROCESS_DEFINITION_NOTES= 移动工作流定义
|
||||
TARGET_PROJECT_ID= 目标项目ID
|
||||
|
|
|
|||
|
|
@ -295,6 +295,28 @@ public class ProjectServiceTest {
|
|||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryProjectCreatedAndAuthorizedByUser() {
|
||||
|
||||
Map<String, Object> result = null;
|
||||
User loginUser = getLoginUser();
|
||||
|
||||
// not admin user
|
||||
Mockito.when(projectMapper.queryProjectCreatedAndAuthorizedByUserId(1)).thenReturn(getList());
|
||||
result = projectService.queryProjectCreatedAndAuthorizedByUser(loginUser);
|
||||
List<Project> notAdminUserResult = (List<Project>) result.get(Constants.DATA_LIST);
|
||||
Assert.assertTrue(CollectionUtils.isNotEmpty(notAdminUserResult));
|
||||
|
||||
//admin user
|
||||
loginUser.setUserType(UserType.ADMIN_USER);
|
||||
Mockito.when(projectMapper.selectList(null)).thenReturn(getList());
|
||||
result = projectService.queryProjectCreatedAndAuthorizedByUser(loginUser);
|
||||
List<Project> projects = (List<Project>) result.get(Constants.DATA_LIST);
|
||||
|
||||
Assert.assertTrue(CollectionUtils.isNotEmpty(projects));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryAllProjectList() {
|
||||
|
||||
|
|
@ -340,13 +362,11 @@ public class ProjectServiceTest {
|
|||
* create admin user
|
||||
*/
|
||||
private User getLoginUser() {
|
||||
|
||||
User loginUser = new User();
|
||||
loginUser.setUserType(UserType.GENERAL_USER);
|
||||
loginUser.setUserName(userName);
|
||||
loginUser.setId(1);
|
||||
return loginUser;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -74,4 +74,11 @@ public interface ProjectMapper extends BaseMapper<Project> {
|
|||
*/
|
||||
List<Project> queryProjectExceptUserId(@Param("userId") int userId);
|
||||
|
||||
/**
|
||||
* query project list by userId
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
List<Project> queryProjectCreatedAndAuthorizedByUserId(@Param("userId") int userId);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -64,5 +64,9 @@
|
|||
from t_ds_project
|
||||
where user_id = #{userId}
|
||||
</select>
|
||||
<select id="queryProjectCreatedAndAuthorizedByUserId" resultType="org.apache.dolphinscheduler.dao.entity.Project">
|
||||
select * from t_ds_project where id in (select project_id from t_ds_relation_project_user where user_id=#{userId}
|
||||
union select id as project_id from t_ds_project where user_id=#{userId})
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
@ -227,7 +227,7 @@ export default {
|
|||
*/
|
||||
getAllItems ({ state }, payload) {
|
||||
return new Promise((resolve, reject) => {
|
||||
io.get(`projects/login-user-created-project`, {}, res => {
|
||||
io.get(`projects/created-and-authorized-project`, {}, res => {
|
||||
resolve(res)
|
||||
}).catch(e => {
|
||||
reject(e)
|
||||
|
|
|
|||
Loading…
Reference in New Issue