Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MeterSphere
metersphere
提交
9e9951ad
M
metersphere
项目概览
MeterSphere
/
metersphere
上一次同步 3 年多
通知
25
Star
1
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
metersphere
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9e9951ad
编写于
2月 25, 2020
作者:
S
shiziyuan9527
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
组织和工作空间切换0.1
上级
fe12305e
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
70 addition
and
47 deletion
+70
-47
backend/src/main/java/io/metersphere/base/mapper/ext/ExtUserRoleMapper.xml
...java/io/metersphere/base/mapper/ext/ExtUserRoleMapper.xml
+0
-5
backend/src/main/java/io/metersphere/controller/UserController.java
...c/main/java/io/metersphere/controller/UserController.java
+3
-3
backend/src/main/java/io/metersphere/controller/WorkspaceController.java
...n/java/io/metersphere/controller/WorkspaceController.java
+6
-0
backend/src/main/java/io/metersphere/dto/UserDTO.java
backend/src/main/java/io/metersphere/dto/UserDTO.java
+10
-10
backend/src/main/java/io/metersphere/service/UserService.java
...end/src/main/java/io/metersphere/service/UserService.java
+13
-8
backend/src/main/java/io/metersphere/service/WorkspaceService.java
...rc/main/java/io/metersphere/service/WorkspaceService.java
+6
-0
backend/src/main/java/io/metersphere/user/SessionUtils.java
backend/src/main/java/io/metersphere/user/SessionUtils.java
+2
-2
frontend/src/performance/components/HeaderUser.vue
frontend/src/performance/components/HeaderUser.vue
+28
-17
frontend/src/performance/components/settings/OrganizationMember.vue
...rc/performance/components/settings/OrganizationMember.vue
+2
-2
未找到文件。
backend/src/main/java/io/metersphere/base/mapper/ext/ExtUserRoleMapper.xml
浏览文件 @
9e9951ad
...
@@ -2,11 +2,6 @@
...
@@ -2,11 +2,6 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper
namespace=
"io.metersphere.base.mapper.ext.ExtUserRoleMapper"
>
<mapper
namespace=
"io.metersphere.base.mapper.ext.ExtUserRoleMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"io.metersphere.dto.LoadTestDTO"
extends=
"io.metersphere.base.mapper.LoadTestMapper.BaseResultMap"
>
<result
column=
"project_name"
property=
"projectName"
/>
</resultMap>
<select
id=
"getUserRoleHelpList"
parameterType=
"java.lang.String"
<select
id=
"getUserRoleHelpList"
parameterType=
"java.lang.String"
resultType=
"io.metersphere.dto.UserRoleHelpDTO"
>
resultType=
"io.metersphere.dto.UserRoleHelpDTO"
>
SELECT
SELECT
...
...
backend/src/main/java/io/metersphere/controller/UserController.java
浏览文件 @
9e9951ad
...
@@ -61,10 +61,10 @@ public class UserController {
...
@@ -61,10 +61,10 @@ public class UserController {
return
userService
.
getUserRoleList
(
userId
);
return
userService
.
getUserRoleList
(
userId
);
}
}
@PostMapping
(
"/switch/source/{sourceId}"
)
@PostMapping
(
"/switch/source/{s
ign}/{s
ourceId}"
)
public
UserDTO
switchUserRole
(
@PathVariable
(
value
=
"sourceId"
)
String
sourceId
)
{
public
UserDTO
switchUserRole
(
@PathVariable
String
sign
,
@PathVariable
(
value
=
"sourceId"
)
String
sourceId
)
{
UserDTO
user
=
SessionUtils
.
getUser
();
UserDTO
user
=
SessionUtils
.
getUser
();
userService
.
switchUserRole
(
user
,
sourceId
);
userService
.
switchUserRole
(
user
,
s
ign
,
s
ourceId
);
return
SessionUtils
.
getUser
();
return
SessionUtils
.
getUser
();
}
}
...
...
backend/src/main/java/io/metersphere/controller/WorkspaceController.java
浏览文件 @
9e9951ad
...
@@ -53,4 +53,10 @@ public class WorkspaceController {
...
@@ -53,4 +53,10 @@ public class WorkspaceController {
public
List
<
Workspace
>
getWorkspaceListByUserId
(
@PathVariable
String
userId
)
{
public
List
<
Workspace
>
getWorkspaceListByUserId
(
@PathVariable
String
userId
)
{
return
workspaceService
.
getWorkspaceListByUserId
(
userId
);
return
workspaceService
.
getWorkspaceListByUserId
(
userId
);
}
}
@GetMapping
(
"/list/orgworkspace/"
)
public
List
<
Workspace
>
getWorkspaceListByOrgId
()
{
String
currentOrganizationId
=
SessionUtils
.
getCurrentOrganizationId
();
return
workspaceService
.
getWorkspaceListByOrgId
(
currentOrganizationId
);
}
}
}
backend/src/main/java/io/metersphere/dto/UserDTO.java
浏览文件 @
9e9951ad
...
@@ -21,9 +21,9 @@ public class UserDTO {
...
@@ -21,9 +21,9 @@ public class UserDTO {
private
Long
updateTime
;
private
Long
updateTime
;
private
String
w
orkspaceId
;
private
String
lastW
orkspaceId
;
private
String
o
rganizationId
;
private
String
lastO
rganizationId
;
private
List
<
Role
>
roles
=
new
ArrayList
<>();
private
List
<
Role
>
roles
=
new
ArrayList
<>();
...
@@ -103,19 +103,19 @@ public class UserDTO {
...
@@ -103,19 +103,19 @@ public class UserDTO {
this
.
userRoles
=
userRoles
;
this
.
userRoles
=
userRoles
;
}
}
public
String
getWorkspaceId
()
{
public
String
get
Last
WorkspaceId
()
{
return
w
orkspaceId
;
return
lastW
orkspaceId
;
}
}
public
void
set
WorkspaceId
(
String
w
orkspaceId
)
{
public
void
set
LastWorkspaceId
(
String
lastW
orkspaceId
)
{
this
.
workspaceId
=
w
orkspaceId
;
this
.
lastWorkspaceId
=
lastW
orkspaceId
;
}
}
public
String
getOrganizationId
()
{
public
String
get
Last
OrganizationId
()
{
return
o
rganizationId
;
return
lastO
rganizationId
;
}
}
public
void
set
OrganizationId
(
String
o
rganizationId
)
{
public
void
set
LastOrganizationId
(
String
lastO
rganizationId
)
{
this
.
organizationId
=
o
rganizationId
;
this
.
lastOrganizationId
=
lastO
rganizationId
;
}
}
}
}
backend/src/main/java/io/metersphere/service/UserService.java
浏览文件 @
9e9951ad
package
io.metersphere.service
;
package
io.metersphere.service
;
import
io.metersphere.base.domain.*
;
import
io.metersphere.base.domain.*
;
import
io.metersphere.base.mapper.OrganizationMapper
;
import
io.metersphere.base.mapper.*
;
import
io.metersphere.base.mapper.RoleMapper
;
import
io.metersphere.base.mapper.UserMapper
;
import
io.metersphere.base.mapper.UserRoleMapper
;
import
io.metersphere.base.mapper.ext.ExtUserRoleMapper
;
import
io.metersphere.base.mapper.ext.ExtUserRoleMapper
;
import
io.metersphere.commons.constants.RoleConstants
;
import
io.metersphere.commons.constants.RoleConstants
;
import
io.metersphere.commons.exception.MSException
;
import
io.metersphere.commons.exception.MSException
;
...
@@ -22,7 +19,6 @@ import org.springframework.beans.BeanUtils;
...
@@ -22,7 +19,6 @@ import org.springframework.beans.BeanUtils;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.util.*
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -41,6 +37,8 @@ public class UserService {
...
@@ -41,6 +37,8 @@ public class UserService {
private
ExtUserRoleMapper
extUserRoleMapper
;
private
ExtUserRoleMapper
extUserRoleMapper
;
@Resource
@Resource
private
OrganizationMapper
organizationMapper
;
private
OrganizationMapper
organizationMapper
;
@Resource
private
WorkspaceMapper
workspaceMapper
;
public
UserDTO
insert
(
User
user
)
{
public
UserDTO
insert
(
User
user
)
{
checkUserParam
(
user
);
checkUserParam
(
user
);
...
@@ -221,10 +219,17 @@ public class UserService {
...
@@ -221,10 +219,17 @@ public class UserService {
return
resultList
;
return
resultList
;
}
}
public
void
switchUserRole
(
UserDTO
user
,
String
sourceId
)
{
public
void
switchUserRole
(
UserDTO
user
,
String
sign
,
String
sourceId
)
{
User
newUser
=
new
User
();
User
newUser
=
new
User
();
// todo 切换处理
if
(
StringUtils
.
equals
(
"organization"
,
sign
))
{
// user.setLastSourceId(sourceId);
user
.
setLastOrganizationId
(
sourceId
);
user
.
setLastWorkspaceId
(
""
);
}
if
(
StringUtils
.
equals
(
"workspace"
,
sign
))
{
Workspace
workspace
=
workspaceMapper
.
selectByPrimaryKey
(
sourceId
);
user
.
setLastOrganizationId
(
workspace
.
getOrganizationId
());
user
.
setLastWorkspaceId
(
sourceId
);
}
BeanUtils
.
copyProperties
(
user
,
newUser
);
BeanUtils
.
copyProperties
(
user
,
newUser
);
// 切换工作空间或组织之后更新 session 里的 user
// 切换工作空间或组织之后更新 session 里的 user
SessionUtils
.
putUser
(
SessionUser
.
fromUser
(
user
));
SessionUtils
.
putUser
(
SessionUser
.
fromUser
(
user
));
...
...
backend/src/main/java/io/metersphere/service/WorkspaceService.java
浏览文件 @
9e9951ad
...
@@ -100,4 +100,10 @@ public class WorkspaceService {
...
@@ -100,4 +100,10 @@ public class WorkspaceService {
return
workspaceMapper
.
selectByExample
(
workspaceExample
);
return
workspaceMapper
.
selectByExample
(
workspaceExample
);
}
}
public
List
<
Workspace
>
getWorkspaceListByOrgId
(
String
orgId
)
{
WorkspaceExample
workspaceExample
=
new
WorkspaceExample
();
workspaceExample
.
createCriteria
().
andOrganizationIdEqualTo
(
orgId
);
return
workspaceMapper
.
selectByExample
(
workspaceExample
);
}
}
}
backend/src/main/java/io/metersphere/user/SessionUtils.java
浏览文件 @
9e9951ad
...
@@ -26,10 +26,10 @@ public class SessionUtils {
...
@@ -26,10 +26,10 @@ public class SessionUtils {
}
}
public
static
String
getCurrentWorkspaceId
()
{
public
static
String
getCurrentWorkspaceId
()
{
return
Optional
.
ofNullable
(
getUser
()).
orElse
(
new
SessionUser
()).
getWorkspaceId
();
return
Optional
.
ofNullable
(
getUser
()).
orElse
(
new
SessionUser
()).
get
Last
WorkspaceId
();
}
}
public
static
String
getCurrentOrganizationId
()
{
public
static
String
getCurrentOrganizationId
()
{
return
Optional
.
ofNullable
(
getUser
()).
orElse
(
new
SessionUser
()).
getOrganizationId
();
return
Optional
.
ofNullable
(
getUser
()).
orElse
(
new
SessionUser
()).
get
Last
OrganizationId
();
}
}
}
}
frontend/src/performance/components/HeaderUser.vue
浏览文件 @
9e9951ad
...
@@ -9,18 +9,18 @@
...
@@ -9,18 +9,18 @@
<el-submenu
index=
"1"
popper-class=
"submenu"
v-permission=
"['org_admin']"
>
<el-submenu
index=
"1"
popper-class=
"submenu"
v-permission=
"['org_admin']"
>
<template
slot=
"title"
>
组织
</
template
>
<template
slot=
"title"
>
组织
</
template
>
<label
v-for=
"(item,index) in organizationList"
:key=
"index"
>
<label
v-for=
"(item,index) in organizationList"
:key=
"index"
>
<el-menu-item
@
click=
"c
lickMenu
(item)"
>
{{item.name}}
<el-menu-item
@
click=
"c
hangeOrg
(item)"
>
{{item.name}}
<i
class=
"el-icon-check"
<i
class=
"el-icon-check"
v-if=
"item.id === currentUserInfo.last
SourceId || item.id === workspaceParent
Id"
></i>
v-if=
"item.id === currentUserInfo.last
Organization
Id"
></i>
</el-menu-item>
</el-menu-item>
</label>
</label>
</el-submenu>
</el-submenu>
<el-submenu
index=
"2"
popper-class=
"submenu"
v-permission=
"['test_manager', 'test_user', 'test_viewer']"
>
<el-submenu
index=
"2"
popper-class=
"submenu"
v-permission=
"['test_manager', 'test_user', 'test_viewer']"
>
<
template
slot=
"title"
>
工作空间
</
template
>
<
template
slot=
"title"
>
工作空间
</
template
>
<label
v-for=
"(item,index) in workspaceList"
:key=
"index"
>
<label
v-for=
"(item,index) in workspaceList"
:key=
"index"
>
<el-menu-item
@
click=
"c
lickMenu
(item)"
>
<el-menu-item
@
click=
"c
hangeWs
(item)"
>
{{item.name}}
{{item.name}}
<i
class=
"el-icon-check"
v-if=
"item.id === currentUserInfo.last
Sour
ceId"
></i>
<i
class=
"el-icon-check"
v-if=
"item.id === currentUserInfo.last
Workspa
ceId"
></i>
</el-menu-item>
</el-menu-item>
</label>
</label>
</el-submenu>
</el-submenu>
...
@@ -54,7 +54,7 @@
...
@@ -54,7 +54,7 @@
data
()
{
data
()
{
return
{
return
{
organizationList
:
[
organizationList
:
[
{
index
:
'
7-1
'
,
name
:
'
组织1
'
},
{
index
:
'
7-1
'
,
name
:
'
无组织
'
},
],
],
workspaceList
:
[
workspaceList
:
[
{
index
:
'
2-1
'
,
name
:
'
无工作空间
'
},
{
index
:
'
2-1
'
,
name
:
'
无工作空间
'
},
...
@@ -105,10 +105,15 @@
...
@@ -105,10 +105,15 @@
});
});
}
}
if
(
roles
.
indexOf
(
ROLE_TEST_MANAGER
)
>
-
1
||
roles
.
indexOf
(
ROLE_TEST_USER
)
>
-
1
||
roles
.
indexOf
(
ROLE_TEST_VIEWER
)
>
-
1
)
{
if
(
roles
.
indexOf
(
ROLE_TEST_MANAGER
)
>
-
1
||
roles
.
indexOf
(
ROLE_TEST_USER
)
>
-
1
||
roles
.
indexOf
(
ROLE_TEST_VIEWER
)
>
-
1
)
{
this
.
$get
(
"
/workspace/list/userworkspace/
"
+
this
.
currentUserId
,
response
=>
{
this
.
$get
(
"
/workspace/list/orgworkspace/
"
,
response
=>
{
this
.
workspaceList
=
response
.
data
;
let
data
=
response
.
data
;
this
.
workspaceIds
=
response
.
data
.
map
(
r
=>
r
.
id
);
if
(
data
.
length
==
0
)
{
});
this
.
workspaceList
=
[{
index
:
'
1-1
'
,
name
:
'
无工作区间
'
}]
}
else
{
this
.
workspaceList
=
data
;
}
// this.workspaceIds = response.data.map(r = r.id);
})
}
}
},
},
getCurrentUserInfo
()
{
getCurrentUserInfo
()
{
...
@@ -116,19 +121,25 @@
...
@@ -116,19 +121,25 @@
this
.
currentUserInfo
=
response
.
data
;
this
.
currentUserInfo
=
response
.
data
;
})
})
},
},
clickMenu
(
data
)
{
changeOrg
(
data
)
{
if
(
data
.
id
===
this
.
currentUserInfo
.
lastSourceId
)
{
let
orgId
=
data
.
id
;
let
sign
=
"
organization
"
;
this
.
$post
(
"
/user/switch/source/
"
+
sign
+
"
/
"
+
orgId
,
{},
response
=>
{
Cookies
.
set
(
TokenKey
,
response
.
data
);
window
.
location
.
reload
();
})
},
changeWs
(
data
)
{
let
sign
=
"
workspace
"
;
let
workspaceId
=
data
.
id
;
// todo 工作空间为空判断
if
(
typeof
(
workspaceId
)
==
"
undefined
"
)
{
return
false
;
return
false
;
}
}
window
.
console
.
log
(
data
.
id
);
this
.
$post
(
"
/user/switch/source/
"
+
sign
+
"
/
"
+
workspaceId
,
{},
response
=>
{
let
user
=
{};
user
.
id
=
this
.
currentUserInfo
.
id
;
user
.
lastSourceId
=
data
.
id
;
this
.
$post
(
"
/user/switch/source/
"
+
user
.
lastSourceId
,
{},
response
=>
{
Cookies
.
set
(
TokenKey
,
response
.
data
);
Cookies
.
set
(
TokenKey
,
response
.
data
);
window
.
location
.
reload
();
window
.
location
.
reload
();
})
})
}
}
}
}
}
}
...
...
frontend/src/performance/components/settings/OrganizationMember.vue
浏览文件 @
9e9951ad
...
@@ -127,7 +127,7 @@
...
@@ -127,7 +127,7 @@
cancelButtonText
:
'
取消
'
,
cancelButtonText
:
'
取消
'
,
type
:
'
warning
'
type
:
'
warning
'
}).
then
(()
=>
{
}).
then
(()
=>
{
this
.
result
=
this
.
$get
(
'
/user/orgmember/delete/
'
+
this
.
current
O
rganizationId
+
'
/
'
+
row
.
id
,
()
=>
{
this
.
result
=
this
.
$get
(
'
/user/orgmember/delete/
'
+
this
.
current
User
().
o
rganizationId
+
'
/
'
+
row
.
id
,
()
=>
{
this
.
$message
({
this
.
$message
({
type
:
'
success
'
,
type
:
'
success
'
,
message
:
'
删除成功!
'
message
:
'
删除成功!
'
...
@@ -153,7 +153,7 @@
...
@@ -153,7 +153,7 @@
if
(
valid
)
{
if
(
valid
)
{
let
param
=
{
let
param
=
{
userIds
:
this
.
form
.
userIds
,
userIds
:
this
.
form
.
userIds
,
organizationId
:
this
.
current
O
rganizationId
organizationId
:
this
.
current
User
().
o
rganizationId
};
};
this
.
result
=
this
.
$post
(
"
user/orgmember/add
"
,
param
,()
=>
{
this
.
result
=
this
.
$post
(
"
user/orgmember/add
"
,
param
,()
=>
{
this
.
initTableData
();
this
.
initTableData
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录