This is an automated email from the ASF dual-hosted git repository.
jinyleechina 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 f03b0e8 to feature-7301 (#7308)
f03b0e8 is described below
commit f03b0e8c7b562b77715185cbaeacc598cba87e12
Author: ouyangyewei <[email protected]>
AuthorDate: Fri Dec 10 14:40:06 2021 +0800
to feature-7301 (#7308)
Co-authored-by: ouyangyewei <[email protected]>
---
.../api/controller/AccessTokenController.java | 22 +++++++++++++++++++
.../apache/dolphinscheduler/api/enums/Status.java | 1 +
.../api/service/AccessTokenService.java | 9 ++++++++
.../api/service/impl/AccessTokenServiceImpl.java | 25 ++++++++++++++++++++++
.../src/main/resources/i18n/messages.properties | 1 +
.../main/resources/i18n/messages_en_US.properties | 1 +
.../main/resources/i18n/messages_zh_CN.properties | 1 +
.../api/controller/AccessTokenControllerTest.java | 13 +++++++++++
.../api/service/AccessTokenServiceTest.java | 21 ++++++++++++++++++
.../dao/mapper/AccessTokenMapper.java | 10 +++++++++
.../dao/mapper/AccessTokenMapper.xml | 7 ++++++
11 files changed, 111 insertions(+)
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/AccessTokenController.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/AccessTokenController.java
index 3fb59ee..202194b 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/AccessTokenController.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/AccessTokenController.java
@@ -17,6 +17,7 @@
package org.apache.dolphinscheduler.api.controller;
+import static
org.apache.dolphinscheduler.api.enums.Status.QUERY_ACCESSTOKEN_BY_USER_ERROR;
import static
org.apache.dolphinscheduler.api.enums.Status.CREATE_ACCESS_TOKEN_ERROR;
import static
org.apache.dolphinscheduler.api.enums.Status.DELETE_ACCESS_TOKEN_ERROR;
import static
org.apache.dolphinscheduler.api.enums.Status.GENERATE_TOKEN_ERROR;
@@ -141,6 +142,27 @@ public class AccessTokenController extends BaseController {
}
/**
+ * query access token for specified user
+ *
+ * @param loginUser login user
+ * @param userId user id
+ * @return token list for specified user
+ */
+ @ApiOperation(value = "queryAccessTokenByUser", notes =
"QUERY_ACCESS_TOKEN_BY_USER_NOTES")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "userId", value = "USER_ID", dataType = "Int")
+ })
+ @GetMapping(value = "/user/{userId}")
+ @ResponseStatus(HttpStatus.OK)
+ @ApiException(QUERY_ACCESSTOKEN_BY_USER_ERROR)
+ @AccessLogAnnotation(ignoreRequestArgs = "loginUser")
+ public Result queryAccessTokenByUser(@ApiIgnore @RequestAttribute(value =
Constants.SESSION_USER) User loginUser,
+ @PathVariable("userId") Integer userId) {
+ Map<String, Object> result =
this.accessTokenService.queryAccessTokenByUser(loginUser, userId);
+ return this.returnDataList(result);
+ }
+
+ /**
* delete access token by id
*
* @param loginUser login user
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 23979c7..cc6f4fc 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
@@ -305,6 +305,7 @@ public enum Status {
UPDATE_ACCESS_TOKEN_ERROR(70013, "update access token error",
"更新访问token错误"),
DELETE_ACCESS_TOKEN_ERROR(70014, "delete access token error",
"删除访问token错误"),
ACCESS_TOKEN_NOT_EXIST(70015, "access token not exist", "访问token不存在"),
+ QUERY_ACCESSTOKEN_BY_USER_ERROR(70016, "query access token by user error",
"查询访问指定用户的token错误"),
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 fc4ed78..b3e14ee 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
@@ -39,6 +39,15 @@ public interface AccessTokenService {
Result queryAccessTokenList(User loginUser, String searchVal, Integer
pageNo, Integer pageSize);
/**
+ * query access token for specified user
+ *
+ * @param loginUser login user
+ * @param userId user id
+ * @return token list for specified user
+ */
+ Map<String, Object> queryAccessTokenByUser(User loginUser, Integer userId);
+
+ /**
* create token
*
* @param userId token for user
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/AccessTokenServiceImpl.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/AccessTokenServiceImpl.java
index 3904846..f5e434a 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/AccessTokenServiceImpl.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/AccessTokenServiceImpl.java
@@ -31,6 +31,7 @@ import
org.apache.dolphinscheduler.dao.mapper.AccessTokenMapper;
import java.util.Date;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import org.slf4j.Logger;
@@ -79,6 +80,30 @@ public class AccessTokenServiceImpl extends BaseServiceImpl
implements AccessTok
}
/**
+ * query access token for specified user
+ *
+ * @param loginUser login user
+ * @param userId user id
+ * @return token list for specified user
+ */
+ @Override
+ public Map<String, Object> queryAccessTokenByUser(User loginUser, Integer
userId) {
+ Map<String, Object> result = new HashMap<>();
+ result.put(Constants.STATUS, false);
+
+ // only admin can operate
+ if (isNotAdmin(loginUser, result)) {
+ return result;
+ }
+
+ // query access token for specified user
+ List<AccessToken> accessTokenList =
this.accessTokenMapper.queryAccessTokenByUser(userId);
+ result.put(Constants.DATA_LIST, accessTokenList);
+ this.putMsg(result, Status.SUCCESS);
+ return result;
+ }
+
+ /**
* create token
*
* @param userId token for user
diff --git a/dolphinscheduler-api/src/main/resources/i18n/messages.properties
b/dolphinscheduler-api/src/main/resources/i18n/messages.properties
index 971149a..282dcf4 100644
--- a/dolphinscheduler-api/src/main/resources/i18n/messages.properties
+++ b/dolphinscheduler-api/src/main/resources/i18n/messages.properties
@@ -145,6 +145,7 @@ TASK_RECORD_TAG=task record related operation
QUERY_TASK_RECORD_LIST_PAGING_NOTES=query task record list paging
CREATE_TOKEN_NOTES=create token ,note: please login first
QUERY_ACCESS_TOKEN_LIST_NOTES=query access token list paging
+QUERY_ACCESS_TOKEN_BY_USER_NOTES=query access token for specified user
SCHEDULE=schedule
WARNING_TYPE=warning type(sending strategy)
WARNING_GROUP_ID=warning group id
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 9f1288e..4b48d4a 100644
--- a/dolphinscheduler-api/src/main/resources/i18n/messages_en_US.properties
+++ b/dolphinscheduler-api/src/main/resources/i18n/messages_en_US.properties
@@ -161,6 +161,7 @@ TASK_RECORD_TAG=task record related operation
QUERY_TASK_RECORD_LIST_PAGING_NOTES=query task record list paging
CREATE_TOKEN_NOTES=create token ,note: please login first
QUERY_ACCESS_TOKEN_LIST_NOTES=query access token list paging
+QUERY_ACCESS_TOKEN_BY_USER_NOTES=query access token for specified user
SCHEDULE=schedule
WARNING_TYPE=warning type(sending strategy)
WARNING_GROUP_ID=warning group id
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 b606702..e6ede24 100644
--- a/dolphinscheduler-api/src/main/resources/i18n/messages_zh_CN.properties
+++ b/dolphinscheduler-api/src/main/resources/i18n/messages_zh_CN.properties
@@ -150,6 +150,7 @@ TASK_RECORD_TAG=任务记录相关操作
QUERY_TASK_RECORD_LIST_PAGING_NOTES=分页查询任务记录列表
CREATE_TOKEN_NOTES=创建token,注意需要先登录
QUERY_ACCESS_TOKEN_LIST_NOTES=分页查询access token列表
+QUERY_ACCESS_TOKEN_BY_USER_NOTES=查询指定用户的access token
SCHEDULE=定时
WARNING_TYPE=发送策略
WARNING_GROUP_ID=发送组ID
diff --git
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/AccessTokenControllerTest.java
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/AccessTokenControllerTest.java
index 761f85e..b77c7ab 100644
---
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/AccessTokenControllerTest.java
+++
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/AccessTokenControllerTest.java
@@ -111,6 +111,19 @@ public class AccessTokenControllerTest extends
AbstractControllerTest {
}
@Test
+ public void testQueryAccessTokenByUser() throws Exception {
+ MvcResult mvcResult = this.mockMvc
+ .perform(get("/access-tokens/user/1")
+ .header("sessionId", this.sessionId))
+ .andExpect(status().isOk())
+ .andExpect(content().contentType(MediaType.APPLICATION_JSON))
+ .andReturn();
+ Result result =
JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(),
Result.class);
+ Assert.assertEquals(Status.SUCCESS.getCode(),
result.getCode().intValue());
+ logger.info(mvcResult.getResponse().getContentAsString());
+ }
+
+ @Test
public void testDelAccessTokenById() throws Exception {
testCreateToken();
MvcResult mvcResult = mockMvc.perform(delete("/access-tokens/1")
diff --git
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/AccessTokenServiceTest.java
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/AccessTokenServiceTest.java
index 3b8ef6b..8f8554f 100644
---
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/AccessTokenServiceTest.java
+++
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/AccessTokenServiceTest.java
@@ -38,11 +38,13 @@ import java.util.Date;
import java.util.List;
import java.util.Map;
+import org.assertj.core.util.Lists;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
+import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -80,6 +82,25 @@ public class AccessTokenServiceTest {
}
@Test
+ public void testQueryAccessTokenByUser() {
+ List<AccessToken> accessTokenList =
Lists.newArrayList(this.getEntity());
+
Mockito.when(this.accessTokenMapper.queryAccessTokenByUser(1)).thenReturn(accessTokenList);
+
+ // USER_NO_OPERATION_PERM
+ User user = this.getLoginUser();
+ user.setUserType(UserType.GENERAL_USER);
+ Map<String, Object> result =
this.accessTokenService.queryAccessTokenByUser(user, 1);
+ logger.info(result.toString());
+ Assert.assertEquals(Status.USER_NO_OPERATION_PERM,
result.get(Constants.STATUS));
+
+ // SUCCESS
+ user.setUserType(UserType.ADMIN_USER);
+ result = this.accessTokenService.queryAccessTokenByUser(user, 1);
+ logger.info(result.toString());
+ Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
+ }
+
+ @Test
public void testCreateToken() {
when(accessTokenMapper.insert(any(AccessToken.class))).thenReturn(2);
diff --git
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/AccessTokenMapper.java
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/AccessTokenMapper.java
index 472ba35..3c73a56 100644
---
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/AccessTokenMapper.java
+++
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/AccessTokenMapper.java
@@ -25,6 +25,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import java.util.List;
+
/**
* accesstoken mapper interface
*/
@@ -45,6 +47,14 @@ public interface AccessTokenMapper extends
BaseMapper<AccessToken> {
);
/**
+ * Query access token for specified user
+ *
+ * @param userId userId
+ * @return access token for specified user
+ */
+ List<AccessToken> queryAccessTokenByUser(@Param("userId") int userId);
+
+ /**
* delete by userId
*
* @param userId userId
diff --git
a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/AccessTokenMapper.xml
b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/AccessTokenMapper.xml
index 35312fb..ef6ce82 100644
---
a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/AccessTokenMapper.xml
+++
b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/AccessTokenMapper.xml
@@ -31,6 +31,13 @@
</if>
order by t.update_time desc
</select>
+
+ <select id="queryAccessTokenByUser"
resultType="org.apache.dolphinscheduler.dao.entity.AccessToken">
+ select `id`, `user_id`, `token`, `expire_time`, `create_time`,
`update_time`
+ from `t_ds_access_token`
+ where `user_id` = #{userId}
+ </select>
+
<delete id="deleteAccessTokenByUserId">
delete from t_ds_access_token
where user_id = #{userId}