Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -54,19 +54,6 @@ public interface ProjectService {
*/
Map<String, Object> queryByName(User loginUser, String projectName);

/**
* check project and authorization
*
* @param loginUser login user
* @param project project
* @param projectCode project code
* @param perm String
* @return true if the login user have permission to see the project
* @deprecated use {@link #checkProjectAndAuthThrowException(User, Long, String)} instead
*/
@Deprecated
Map<String, Object> checkProjectAndAuth(User loginUser, Project project, long projectCode, String perm);

void checkProjectAndAuthThrowException(User loginUser, Project project, String permission) throws ServiceException;

void checkProjectAndAuthThrowException(User loginUser, Long projectCode, String permission) throws ServiceException;
Expand Down Expand Up @@ -195,20 +182,6 @@ Result queryProjectWithAuthorizedLevelListPaging(Integer userId, User loginUser,
*/
Result queryProjectCreatedAndAuthorizedByUser(User loginUser);

/**
* check project and authorization
*
* @param result result
* @param loginUser login user
* @param project project
* @param projectCode project code
* @param perm String
* @return true if the login user have permission to see the project
* @deprecated use {@link #checkProjectAndAuthThrowException(User, Long, String)} instead
*/
@Deprecated
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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -192,34 +192,6 @@ public Map<String, Object> queryByName(User loginUser, String projectName) {
return result;
}

/**
* check project and authorization
*
* @param loginUser login user
* @param project project
* @param projectCode project code
* @return true if the login user have permission to see the project
*/
@Deprecated
@Override
public Map<String, Object> checkProjectAndAuth(User loginUser, Project project, long projectCode,
String permission) {
Map<String, Object> result = new HashMap<>();
if (project == null) {
log.error("Project does not exist, projectCode:{}.", projectCode);
putMsg(result, Status.PROJECT_NOT_EXIST);
} else if (!canOperatorPermissions(loginUser, new Object[]{project.getId()}, AuthorizationType.PROJECTS,
permission)) {
// check read permission
log.error("User does not have {} permission to operate project, userName:{}, projectCode:{}.",
permission, loginUser.getUserName(), projectCode);
putMsg(result, Status.USER_NO_OPERATION_PROJECT_PERM, loginUser.getUserName(), projectCode);
} else {
putMsg(result, Status.SUCCESS);
}
return result;
}

public void checkProjectAndAuthThrowException(@NonNull User loginUser, @Nullable Project project,
String permission) {
// todo: throw a permission exception
Expand Down Expand Up @@ -478,12 +450,7 @@ public Result deleteProject(User loginUser, Long projectCode) {
return result;
}

checkProjectAndAuth(result, loginUser, project, project == null ? 0L : project.getCode(), PROJECT_DELETE);
if (result.getCode() != Status.SUCCESS.getCode()) {
return result;
}

assert project != null;
checkProjectAndAuthThrowException(loginUser, project, PROJECT_DELETE);

List<WorkflowDefinition> workflowDefinitionList =
workflowDefinitionMapper.queryAllDefinitionList(project.getCode());
Expand All @@ -508,23 +475,6 @@ public Result deleteProject(User loginUser, Long projectCode) {
return result;
}

/**
* get check result
*
* @param loginUser login user
* @param project project
* @return check result
*/
private Map<String, Object> getCheckResult(User loginUser, Project project, String perm) {
Map<String, Object> checkResult =
checkProjectAndAuth(loginUser, project, project == null ? 0L : project.getCode(), perm);
Status status = (Status) checkResult.get(Constants.STATUS);
if (status != Status.SUCCESS) {
return checkResult;
}
return null;
}

/**
* updateWorkflowInstance project
*
Expand Down Expand Up @@ -811,31 +761,6 @@ public Result queryAllProjectList(User user) {
return result;
}

/**
* check project and authorization
*
* @param result result
* @param loginUser login user
* @param project project
* @param projectCode project code
* @return true if the login user have permission to see the project
*/
@Deprecated
@Override
public void checkProjectAndAuth(Result result, User loginUser, Project project, long projectCode,
String permission) {
if (project == null) {
log.error("Project does not exist, project code:{}.", projectCode);
putMsg(result, Status.PROJECT_NOT_EXIST);
} else if (!canOperatorPermissions(loginUser, new Object[]{project.getId()}, AuthorizationType.PROJECTS,
permission)) {
// check read permission
putMsg(result, Status.USER_NO_OPERATION_PROJECT_PERM, loginUser.getUserName(), projectCode);
} else {
putMsg(result, Status.SUCCESS);
}
}

/**
* query all project for dependent node
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -483,10 +483,9 @@ public Map<String, Object> updateScheduleByWorkflowDefinitionCode(User loginUser
long environmentCode) {
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, projectCode, null);
if (result.get(Constants.STATUS) != Status.SUCCESS) {
return result;
}
projectService.checkProjectAndAuthThrowException(loginUser, project, null);

Map<String, Object> result = new HashMap<>();
// check schedule exists
Schedule schedule = scheduleMapper.queryByWorkflowDefinitionCode(workflowDefinitionCode);
if (schedule == null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -134,12 +134,9 @@ public Map<String, Object> queryTaskDefinitionByName(User loginUser, long projec
String taskName) {
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
Map<String, Object> result =
projectService.checkProjectAndAuth(loginUser, project, projectCode, TASK_DEFINITION);
if (result.get(Constants.STATUS) != Status.SUCCESS) {
return result;
}
projectService.checkProjectAndAuthThrowException(loginUser, project, TASK_DEFINITION);

Map<String, Object> result = new HashMap<>();
TaskDefinition taskDefinition =
taskDefinitionMapper.queryByName(project.getCode(), workflowDefinitionCode, taskName);
if (taskDefinition == null) {
Expand Down Expand Up @@ -526,11 +523,9 @@ private WorkflowTaskRelationLog createWorkflowTaskRelationLog(User loginUser,
public Map<String, Object> switchVersion(User loginUser, long projectCode, long taskCode, int version) {
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
Map<String, Object> result =
projectService.checkProjectAndAuth(loginUser, project, projectCode, WORKFLOW_SWITCH_TO_THIS_VERSION);
if (result.get(Constants.STATUS) != Status.SUCCESS) {
return result;
}
projectService.checkProjectAndAuthThrowException(loginUser, project, WORKFLOW_SWITCH_TO_THIS_VERSION);

Map<String, Object> result = new HashMap<>();
if (processService.isTaskOnline(taskCode)) {
log.warn(
"Task definition version can not be switched due to workflow definition is {}, taskDefinitionCode:{}.",
Expand Down Expand Up @@ -584,13 +579,8 @@ public Result queryTaskDefinitionVersions(User loginUser,
Result result = new Result();
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
Map<String, Object> checkResult =
projectService.checkProjectAndAuth(loginUser, project, projectCode, TASK_VERSION_VIEW);
Status resultStatus = (Status) checkResult.get(Constants.STATUS);
if (resultStatus != Status.SUCCESS) {
putMsg(result, resultStatus);
return result;
}
projectService.checkProjectAndAuthThrowException(loginUser, project, TASK_VERSION_VIEW);

PageInfo<TaskDefinitionLog> pageInfo = new PageInfo<>(pageNo, pageSize);
Page<TaskDefinitionLog> page = new Page<>(pageNo, pageSize);
IPage<TaskDefinitionLog> taskDefinitionVersionsPaging =
Expand Down Expand Up @@ -645,12 +635,9 @@ public Map<String, Object> deleteByCodeAndVersion(User loginUser, long projectCo
public Map<String, Object> queryTaskDefinitionDetail(User loginUser, long projectCode, long taskCode) {
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
Map<String, Object> result =
projectService.checkProjectAndAuth(loginUser, project, projectCode, TASK_DEFINITION);
if (result.get(Constants.STATUS) != Status.SUCCESS) {
return result;
}
projectService.checkProjectAndAuthThrowException(loginUser, project, TASK_DEFINITION);

Map<String, Object> result = new HashMap<>();
TaskDefinition taskDefinition = taskDefinitionMapper.queryByCode(taskCode);
if (taskDefinition == null || projectCode != taskDefinition.getProjectCode()) {
log.error("Task definition does not exist, taskDefinitionCode:{}.", taskCode);
Expand Down Expand Up @@ -705,11 +692,9 @@ public Map<String, Object> releaseTaskDefinition(User loginUser, long projectCod
ReleaseState releaseState) {
Project project = projectMapper.queryByCode(projectCode);
// check user access for project
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, projectCode, null);
Status resultStatus = (Status) result.get(Constants.STATUS);
if (resultStatus != Status.SUCCESS) {
return result;
}
projectService.checkProjectAndAuthThrowException(loginUser, project, null);

Map<String, Object> result = new HashMap<>();
if (null == releaseState) {
putMsg(result, Status.REQUEST_PARAMS_NOT_VALID_ERROR, Constants.RELEASE_STATE);
return result;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
import org.apache.dolphinscheduler.api.service.UsersService;
import org.apache.dolphinscheduler.api.utils.PageInfo;
import org.apache.dolphinscheduler.api.utils.Result;
import org.apache.dolphinscheduler.common.constants.Constants;
import org.apache.dolphinscheduler.common.enums.TaskExecuteType;
import org.apache.dolphinscheduler.common.utils.DateUtils;
import org.apache.dolphinscheduler.dao.entity.Project;
Expand Down Expand Up @@ -241,13 +240,7 @@ public Result taskSavePoint(User loginUser, long projectCode, Integer taskInstan

Project project = projectMapper.queryByCode(projectCode);
// check user access for project
Map<String, Object> checkResult =
projectService.checkProjectAndAuth(loginUser, project, projectCode, FORCED_SUCCESS);
Status status = (Status) checkResult.get(Constants.STATUS);
if (status != Status.SUCCESS) {
putMsg(result, status);
return result;
}
projectService.checkProjectAndAuthThrowException(loginUser, project, FORCED_SUCCESS);

TaskInstance taskInstance = taskInstanceMapper.selectById(taskInstanceId);
if (taskInstance == null) {
Expand All @@ -271,13 +264,7 @@ public Result stopTask(User loginUser, long projectCode, Integer taskInstanceId)

Project project = projectMapper.queryByCode(projectCode);
// check user access for project
Map<String, Object> checkResult =
projectService.checkProjectAndAuth(loginUser, project, projectCode, FORCED_SUCCESS);
Status status = (Status) checkResult.get(Constants.STATUS);
if (status != Status.SUCCESS) {
putMsg(result, status);
return result;
}
projectService.checkProjectAndAuthThrowException(loginUser, project, FORCED_SUCCESS);

TaskInstance taskInstance = taskInstanceMapper.selectById(taskInstanceId);
if (taskInstance == null) {
Expand Down
Loading
Loading