Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
老大叔也想要天天的爱情
DolphinScheduler
提交
1e62b418
DolphinScheduler
项目概览
老大叔也想要天天的爱情
/
DolphinScheduler
与 Fork 源项目一致
Fork自
apache / DolphinScheduler
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
DolphinScheduler
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
1e62b418
编写于
8月 25, 2020
作者:
B
break60
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'dev' of
https://github.com/apache/incubator-dolphinscheduler
into dev
上级
2d15275e
879feb79
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
135 addition
and
7 deletion
+135
-7
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UsersController.java
...ache/dolphinscheduler/api/controller/UsersController.java
+24
-2
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UsersService.java
...org/apache/dolphinscheduler/api/service/UsersService.java
+50
-0
dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UsersControllerTest.java
.../dolphinscheduler/api/controller/UsersControllerTest.java
+22
-1
dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/UsersServiceTest.java
...apache/dolphinscheduler/api/service/UsersServiceTest.java
+39
-4
未找到文件。
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UsersController.java
浏览文件 @
1e62b418
...
...
@@ -35,10 +35,12 @@ import org.springframework.http.HttpStatus;
import
org.springframework.web.bind.annotation.*
;
import
springfox.documentation.annotations.ApiIgnore
;
import
java.util.Map
;
import
static
org
.
apache
.
dolphinscheduler
.
api
.
enums
.
Status
.*;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
* user controller
...
...
@@ -462,4 +464,24 @@ public class UsersController extends BaseController {
Map
<
String
,
Object
>
result
=
usersService
.
activateUser
(
loginUser
,
userName
);
return
returnDataList
(
result
);
}
/**
* user batch activate
*
* @param userNames user names
*/
@ApiOperation
(
value
=
"batchActivateUser"
,
notes
=
"BATCH_ACTIVATE_USER_NOTES"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"userNames"
,
value
=
"USER_NAMES"
,
type
=
"String"
),
})
@PostMapping
(
"/batch/activate"
)
@ResponseStatus
(
HttpStatus
.
OK
)
@ApiException
(
UPDATE_USER_ERROR
)
public
Result
<
Object
>
batchActivateUser
(
@ApiIgnore
@RequestAttribute
(
value
=
Constants
.
SESSION_USER
)
User
loginUser
,
@RequestBody
List
<
String
>
userNames
)
{
List
<
String
>
formatUserNames
=
userNames
.
stream
().
map
(
ParameterUtils:
:
handleEscapes
).
collect
(
Collectors
.
toList
());
logger
.
info
(
" activate userNames: {}"
,
formatUserNames
);
Map
<
String
,
Object
>
result
=
usersService
.
batchActivateUser
(
loginUser
,
formatUserNames
);
return
returnDataList
(
result
);
}
}
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UsersService.java
浏览文件 @
1e62b418
...
...
@@ -40,6 +40,7 @@ import org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Transactional
;
import
java.io.IOException
;
import
java.text.MessageFormat
;
import
java.util.*
;
import
java.util.stream.Collectors
;
...
...
@@ -946,6 +947,7 @@ public class UsersService extends BaseService {
* activate user, only system admin have permission, change user state code 0 to 1
*
* @param loginUser login user
* @param userName user name
* @return create result code
*/
public
Map
<
String
,
Object
>
activateUser
(
User
loginUser
,
String
userName
)
{
...
...
@@ -983,4 +985,52 @@ public class UsersService extends BaseService {
result
.
put
(
Constants
.
DATA_LIST
,
responseUser
);
return
result
;
}
/**
* activate user, only system admin have permission, change users state code 0 to 1
*
* @param loginUser login user
* @param userNames user name
* @return create result code
*/
public
Map
<
String
,
Object
>
batchActivateUser
(
User
loginUser
,
List
<
String
>
userNames
)
{
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
if
(!
isAdmin
(
loginUser
))
{
putMsg
(
result
,
Status
.
USER_NO_OPERATION_PERM
);
return
result
;
}
int
totalSuccess
=
0
;
List
<
String
>
successUserNames
=
new
ArrayList
<>();
Map
<
String
,
Object
>
successRes
=
new
HashMap
<>();
int
totalFailed
=
0
;
List
<
Map
<
String
,
String
>>
failedInfo
=
new
ArrayList
<>();
Map
<
String
,
Object
>
failedRes
=
new
HashMap
<>();
for
(
String
userName
:
userNames
)
{
Map
<
String
,
Object
>
tmpResult
=
activateUser
(
loginUser
,
userName
);
if
(
tmpResult
.
get
(
Constants
.
STATUS
)
!=
Status
.
SUCCESS
)
{
totalFailed
++;
Map
<
String
,
String
>
failedBody
=
new
HashMap
<>();
failedBody
.
put
(
"userName"
,
userName
);
Status
status
=
(
Status
)
tmpResult
.
get
(
Constants
.
STATUS
);
String
errorMessage
=
MessageFormat
.
format
(
status
.
getMsg
(),
userName
);
failedBody
.
put
(
"msg"
,
errorMessage
);
failedInfo
.
add
(
failedBody
);
}
else
{
totalSuccess
++;
successUserNames
.
add
(
userName
);
}
}
successRes
.
put
(
"sum"
,
totalSuccess
);
successRes
.
put
(
"userName"
,
successUserNames
);
failedRes
.
put
(
"sum"
,
totalFailed
);
failedRes
.
put
(
"info"
,
failedInfo
);
Map
<
String
,
Object
>
res
=
new
HashMap
<>();
res
.
put
(
"success"
,
successRes
);
res
.
put
(
"failed"
,
failedRes
);
putMsg
(
result
,
Status
.
SUCCESS
);
result
.
put
(
Constants
.
DATA_LIST
,
res
);
return
result
;
}
}
dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UsersControllerTest.java
浏览文件 @
1e62b418
...
...
@@ -18,7 +18,7 @@ package org.apache.dolphinscheduler.api.controller;
import
org.apache.dolphinscheduler.api.enums.Status
;
import
org.apache.dolphinscheduler.api.utils.Result
;
import
org.apache.dolphinscheduler.common.utils.
*
;
import
org.apache.dolphinscheduler.common.utils.
JSONUtils
;
import
org.junit.Assert
;
import
org.junit.Test
;
import
org.slf4j.Logger
;
...
...
@@ -33,6 +33,9 @@ import static org.springframework.test.web.servlet.request.MockMvcRequestBuilder
import
static
org
.
springframework
.
test
.
web
.
servlet
.
result
.
MockMvcResultMatchers
.
content
;
import
static
org
.
springframework
.
test
.
web
.
servlet
.
result
.
MockMvcResultMatchers
.
status
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* users controller test
*/
...
...
@@ -302,4 +305,22 @@ public class UsersControllerTest extends AbstractControllerTest{
Result
result
=
JSONUtils
.
parseObject
(
mvcResult
.
getResponse
().
getContentAsString
(),
Result
.
class
);
Assert
.
assertEquals
(
Status
.
SUCCESS
.
getCode
(),
result
.
getCode
().
intValue
());
}
@Test
public
void
testBatchActivateUser
()
throws
Exception
{
List
<
String
>
userNames
=
new
ArrayList
<>();
userNames
.
add
(
"user_sky_cxl"
);
userNames
.
add
(
"19990323"
);
userNames
.
add
(
"test_sky_post_11"
);
String
jsonUserNames
=
JSONUtils
.
toJsonString
(
userNames
);
MvcResult
mvcResult
=
mockMvc
.
perform
(
post
(
"/users/batch/activate"
)
.
header
(
SESSION_ID
,
sessionId
)
.
contentType
(
MediaType
.
APPLICATION_JSON
)
.
content
(
jsonUserNames
))
.
andExpect
(
status
().
isOk
())
.
andReturn
();
Result
result
=
JSONUtils
.
parseObject
(
mvcResult
.
getResponse
().
getContentAsString
(),
Result
.
class
);
Assert
.
assertEquals
(
Status
.
SUCCESS
.
getCode
(),
result
.
getCode
().
intValue
());
}
}
dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/UsersServiceTest.java
浏览文件 @
1e62b418
...
...
@@ -42,14 +42,14 @@ import org.mockito.junit.MockitoJUnitRunner;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
static
org
.
mockito
.
ArgumentMatchers
.
any
;
import
static
org
.
mockito
.
ArgumentMatchers
.
eq
;
import
static
org
.
mockito
.
Mockito
.
when
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
@RunWith
(
MockitoJUnitRunner
.
class
)
public
class
UsersServiceTest
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
UsersServiceTest
.
class
);
...
...
@@ -528,6 +528,41 @@ public class UsersServiceTest {
}
}
@Test
public
void
testBatchActivateUser
()
{
User
user
=
new
User
();
user
.
setUserType
(
UserType
.
GENERAL_USER
);
List
<
String
>
userNames
=
new
ArrayList
<>();
userNames
.
add
(
"userTest0001"
);
userNames
.
add
(
"userTest0002"
);
userNames
.
add
(
"userTest0003~"
);
userNames
.
add
(
"userTest0004"
);
try
{
//not admin
Map
<
String
,
Object
>
result
=
usersService
.
batchActivateUser
(
user
,
userNames
);
Assert
.
assertEquals
(
Status
.
USER_NO_OPERATION_PERM
,
result
.
get
(
Constants
.
STATUS
));
//batch activate user names
user
.
setUserType
(
UserType
.
ADMIN_USER
);
when
(
userMapper
.
queryByUserNameAccurately
(
"userTest0001"
)).
thenReturn
(
getUser
());
when
(
userMapper
.
queryByUserNameAccurately
(
"userTest0002"
)).
thenReturn
(
getDisabledUser
());
result
=
usersService
.
batchActivateUser
(
user
,
userNames
);
Map
<
String
,
Object
>
responseData
=
(
Map
<
String
,
Object
>)
result
.
get
(
Constants
.
DATA_LIST
);
Map
<
String
,
Object
>
successData
=
(
Map
<
String
,
Object
>)
responseData
.
get
(
"success"
);
int
totalSuccess
=
(
Integer
)
successData
.
get
(
"sum"
);
Map
<
String
,
Object
>
failedData
=
(
Map
<
String
,
Object
>)
responseData
.
get
(
"failed"
);
int
totalFailed
=
(
Integer
)
failedData
.
get
(
"sum"
);
Assert
.
assertEquals
(
1
,
totalSuccess
);
Assert
.
assertEquals
(
3
,
totalFailed
);
Assert
.
assertEquals
(
Status
.
SUCCESS
,
result
.
get
(
Constants
.
STATUS
));
}
catch
(
Exception
e
)
{
Assert
.
assertTrue
(
false
);
}
}
/**
* get disabled user
* @return
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录