diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/enums/Status.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/enums/Status.java index 78e9c772ff..da5e1409d2 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/enums/Status.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/enums/Status.java @@ -236,11 +236,12 @@ public enum Status { - CREATE_ACCESS_TOKEN_ERROR(70001,"create access token error"), - GENERATE_TOKEN_ERROR(70002,"generate token error"), - QUERY_ACCESSTOKEN_LIST_PAGING_ERROR(70003,"query access token list paging error"), - UPDATE_ACCESS_TOKEN_ERROR(70004,"update access token error"), - DELETE_ACCESS_TOKEN_ERROR(70005,"delete access token error"), + CREATE_ACCESS_TOKEN_ERROR(70010,"create access token error"), + GENERATE_TOKEN_ERROR(70011,"generate token error"), + QUERY_ACCESSTOKEN_LIST_PAGING_ERROR(70012,"query access token list paging error"), + UPDATE_ACCESS_TOKEN_ERROR(70013,"update access token error"), + DELETE_ACCESS_TOKEN_ERROR(70014,"delete access token error"), + ACCESS_TOKEN_NOT_EXIST(70015, "access token not exist"), COMMAND_STATE_COUNT_ERROR(80001,"task instance state count error"), diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/AccessTokenService.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/AccessTokenService.java index 76e097e154..e6413f8fc3 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/AccessTokenService.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/AccessTokenService.java @@ -145,8 +145,18 @@ public class AccessTokenService extends BaseService { */ public Map delAccessTokenById(User loginUser, int id) { Map result = new HashMap<>(5); - //only admin can operate - if (checkAdmin(loginUser, result)) { + + AccessToken accessToken = accessTokenMapper.selectById(id); + + if (accessToken == null) { + logger.error("access token not exist, access token id {}", id); + putMsg(result, Status.ACCESS_TOKEN_NOT_EXIST); + return result; + } + + if (loginUser.getId() != accessToken.getUserId() && + loginUser.getUserType() != UserType.ADMIN_USER) { + putMsg(result, Status.USER_NO_OPERATION_PERM); return result; }