Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
Captain.B 2020-02-25 17:37:48 +08:00
commit 167c8cd675
4 changed files with 40 additions and 25 deletions

View File

@ -55,8 +55,8 @@ public class WorkspaceController {
} }
@GetMapping("/list/orgworkspace/") @GetMapping("/list/orgworkspace/")
public List<Workspace> getWorkspaceListByOrgId() { public List<Workspace> getWorkspaceListByOrgIdAndUserId() {
String currentOrganizationId = SessionUtils.getCurrentOrganizationId(); String currentOrganizationId = SessionUtils.getCurrentOrganizationId();
return workspaceService.getWorkspaceListByOrgId(currentOrganizationId); return workspaceService.getWorkspaceListByOrgIdAndUserId(currentOrganizationId);
} }
} }

View File

@ -1,8 +1,7 @@
package io.metersphere.service; package io.metersphere.service;
import io.metersphere.base.domain.UserRole; import io.metersphere.base.domain.*;
import io.metersphere.base.domain.Workspace; import io.metersphere.base.mapper.UserRoleMapper;
import io.metersphere.base.domain.WorkspaceExample;
import io.metersphere.base.mapper.WorkspaceMapper; import io.metersphere.base.mapper.WorkspaceMapper;
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;
@ -28,6 +27,8 @@ public class WorkspaceService {
private WorkspaceMapper workspaceMapper; private WorkspaceMapper workspaceMapper;
@Resource @Resource
private ExtUserRoleMapper extUserRoleMapper; private ExtUserRoleMapper extUserRoleMapper;
@Resource
private UserRoleMapper userRoleMapper;
public Workspace saveWorkspace(Workspace workspace) { public Workspace saveWorkspace(Workspace workspace) {
if (StringUtils.isBlank(workspace.getName())) { if (StringUtils.isBlank(workspace.getName())) {
@ -100,10 +101,23 @@ public class WorkspaceService {
return workspaceMapper.selectByExample(workspaceExample); return workspaceMapper.selectByExample(workspaceExample);
} }
public List<Workspace> getWorkspaceListByOrgId(String orgId) { public List<Workspace> getWorkspaceListByOrgIdAndUserId(String orgId) {
String useId = SessionUtils.getUser().getId();
WorkspaceExample workspaceExample = new WorkspaceExample(); WorkspaceExample workspaceExample = new WorkspaceExample();
workspaceExample.createCriteria().andOrganizationIdEqualTo(orgId); workspaceExample.createCriteria().andOrganizationIdEqualTo(orgId);
return workspaceMapper.selectByExample(workspaceExample); List<Workspace> workspaces = workspaceMapper.selectByExample(workspaceExample);
UserRoleExample userRoleExample = new UserRoleExample();
userRoleExample.createCriteria().andUserIdEqualTo(useId);
List<UserRole> userRoles = userRoleMapper.selectByExample(userRoleExample);
List<Workspace> resultWorkspaceList = new ArrayList<>();
userRoles.forEach(userRole -> {
workspaces.forEach(workspace -> {
if (StringUtils.equals(userRole.getSourceId(),workspace.getId())) {
resultWorkspaceList.add(workspace);
}
});
});
return resultWorkspaceList;
} }
} }

View File

@ -4,10 +4,10 @@
<el-col :span="4"> <el-col :span="4">
<a class="logo"/> <a class="logo"/>
</el-col> </el-col>
<el-col :span="10"> <el-col :span="6">
<ms-top-menus/> <ms-top-menus/>
</el-col> </el-col>
<el-col :span="10"> <el-col :span="14">
<ms-user/> <ms-user/>
</el-col> </el-col>
</el-row> </el-row>

View File

@ -1,13 +1,13 @@
<template> <template>
<el-row> <el-row>
<el-col :span="10" :offset="8"> <el-col :span="14" :offset="6">
<el-menu :unique-opened="true" mode="horizontal" router <el-menu :unique-opened="true" mode="horizontal" router
menu-trigger="click" menu-trigger="click"
class="header-user-menu" class="header-user-menu"
background-color="rgb(44, 42, 72)" background-color="rgb(44, 42, 72)"
text-color="#fff"> text-color="#fff">
<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">组织{{currrentOrganizationName}}</template>
<label v-for="(item,index) in organizationList" :key="index"> <label v-for="(item,index) in organizationList" :key="index">
<el-menu-item @click="changeOrg(item)">{{item.name}} <el-menu-item @click="changeOrg(item)">{{item.name}}
<i class="el-icon-check" <i class="el-icon-check"
@ -16,7 +16,7 @@
</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">工作空间{{currrentWorkspaceName}}</template>
<label v-for="(item,index) in workspaceList" :key="index"> <label v-for="(item,index) in workspaceList" :key="index">
<el-menu-item @click="changeWs(item)"> <el-menu-item @click="changeWs(item)">
{{item.name}} {{item.name}}
@ -27,7 +27,7 @@
</el-menu> </el-menu>
</el-col> </el-col>
<el-col :span="3" :offset="3"> <el-col :span="2" :offset="2">
<el-dropdown size="medium" @command="handleCommand"> <el-dropdown size="medium" @command="handleCommand">
<span class="dropdown-link"> <span class="dropdown-link">
{{currentUser.name}}<i class="el-icon-caret-bottom el-icon--right"/> {{currentUser.name}}<i class="el-icon-caret-bottom el-icon--right"/>
@ -61,7 +61,9 @@
], ],
currentUserInfo: {}, currentUserInfo: {},
currentUserId: JSON.parse(Cookies.get(TokenKey)).id, currentUserId: JSON.parse(Cookies.get(TokenKey)).id,
workspaceIds: [] workspaceIds: [],
currrentOrganizationName: '选择组织',
currrentWorkspaceName: '选择工作空间'
} }
}, },
computed: { computed: {
@ -69,16 +71,6 @@
let user = Cookies.get(TokenKey); let user = Cookies.get(TokenKey);
window.console.log(user); window.console.log(user);
return JSON.parse(user); return JSON.parse(user);
},
workspaceParentId() {
let result = '';
if (this.workspaceIds.includes(this.currentUserInfo.lastSourceId)) {
let obj = this.workspaceList.filter(r => r.id === this.currentUserInfo.lastSourceId);
if (obj.length > 0) {
result = obj[0].organizationId;
}
}
return result;
} }
}, },
methods: { methods: {
@ -101,7 +93,12 @@
let roles = this.currentUser.roles.map(r => r.id); let roles = this.currentUser.roles.map(r => r.id);
if (roles.indexOf(ROLE_ORG_ADMIN) > -1) { if (roles.indexOf(ROLE_ORG_ADMIN) > -1) {
this.$get("/organization/list/userorg/" + this.currentUserId, response => { this.$get("/organization/list/userorg/" + this.currentUserId, response => {
this.organizationList = response.data; let data = response.data;
this.organizationList = data;
let org = data.filter(r => r.id === this.currentUser.lastOrganizationId);
if (org.length > 0) {
this.currrentOrganizationName = org[0].name;
}
}); });
} }
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) {
@ -111,6 +108,10 @@
this.workspaceList = [{index:'1-1', name: '无工作区间'}] this.workspaceList = [{index:'1-1', name: '无工作区间'}]
} else { } else {
this.workspaceList = data; this.workspaceList = data;
let workspace = data.filter(r => r.id === this.currentUser.lastWorkspaceId);
if (workspace.length > 0) {
this.currrentWorkspaceName = workspace[0].name;
}
} }
// this.workspaceIds = response.data.map(r = r.id); // this.workspaceIds = response.data.map(r = r.id);
}) })