fix(系统设置): UI模块菜单权限控制问题
--bug=1015853 --user=李玉号 【系统设置】没有UI测试 - UI自动化权限的时候,点击UI模块,会跳到个人信息页面 https://www.tapd.cn/55049933/s/1224477
This commit is contained in:
parent
e82663bdb9
commit
912b38ef34
|
@ -20,6 +20,7 @@ import io.metersphere.performance.controller.request.RenameReportRequest;
|
||||||
import io.metersphere.performance.controller.request.ReportRequest;
|
import io.metersphere.performance.controller.request.ReportRequest;
|
||||||
import io.metersphere.performance.dto.LoadTestExportJmx;
|
import io.metersphere.performance.dto.LoadTestExportJmx;
|
||||||
import io.metersphere.performance.service.PerformanceReportService;
|
import io.metersphere.performance.service.PerformanceReportService;
|
||||||
|
import org.apache.shiro.authz.annotation.Logical;
|
||||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
@ -35,7 +36,7 @@ public class PerformanceReportController {
|
||||||
private PerformanceReportService performanceReportService;
|
private PerformanceReportService performanceReportService;
|
||||||
|
|
||||||
@PostMapping("/recent/{count}")
|
@PostMapping("/recent/{count}")
|
||||||
@RequiresPermissions("PROJECT_PERFORMANCE_REPORT:READ")
|
@RequiresPermissions(value = {"PROJECT_PERFORMANCE_REPORT:READ", "PROJECT_PERFORMANCE_HOME:READ"}, logical = Logical.OR)
|
||||||
public List<ReportDTO> recentProjects(@PathVariable int count, @RequestBody ReportRequest request) {
|
public List<ReportDTO> recentProjects(@PathVariable int count, @RequestBody ReportRequest request) {
|
||||||
// 最近 `count` 个项目
|
// 最近 `count` 个项目
|
||||||
PageHelper.startPage(1, count);
|
PageHelper.startPage(1, count);
|
||||||
|
|
|
@ -98,7 +98,8 @@ export default {
|
||||||
if (!redirectUrl) {
|
if (!redirectUrl) {
|
||||||
return '/setting';
|
return '/setting';
|
||||||
}
|
}
|
||||||
if (redirectUrl.startsWith("/track") || redirectUrl.startsWith("/performance") || redirectUrl.startsWith("/api")) {
|
if (redirectUrl.startsWith("/track") || redirectUrl.startsWith("/performance")
|
||||||
|
|| redirectUrl.startsWith("/api") || redirectUrl.startsWith("/ui")) {
|
||||||
// 获取有权限的跳转路径
|
// 获取有权限的跳转路径
|
||||||
redirectUrl = getDefaultSecondLevelMenu(redirectUrl);
|
redirectUrl = getDefaultSecondLevelMenu(redirectUrl);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -107,7 +107,8 @@ export default {
|
||||||
this.reload();
|
this.reload();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (copyRedirectUrl.startsWith("/track") || copyRedirectUrl.startsWith("/performance") || copyRedirectUrl.startsWith("/api")) {
|
if (copyRedirectUrl.startsWith("/track") || copyRedirectUrl.startsWith("/performance")
|
||||||
|
|| copyRedirectUrl.startsWith("/api") || copyRedirectUrl.startsWith("/ui")) {
|
||||||
// 获取有权限的跳转路径
|
// 获取有权限的跳转路径
|
||||||
copyRedirectUrl = getDefaultSecondLevelMenu(copyRedirectUrl);
|
copyRedirectUrl = getDefaultSecondLevelMenu(copyRedirectUrl);
|
||||||
if (copyRedirectUrl !== '/') {
|
if (copyRedirectUrl !== '/') {
|
||||||
|
|
|
@ -94,13 +94,15 @@ function redirectLoginPath(originPath, next) {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getDefaultSecondLevelMenu(toPath) {
|
export function getDefaultSecondLevelMenu(toPath) {
|
||||||
let {TRACK: tracks, API: apis, LOAD: loads} = SECOND_LEVEL_ROUTE_PERMISSION_MAP;
|
let {TRACK: tracks, API: apis, LOAD: loads, UI: ui} = SECOND_LEVEL_ROUTE_PERMISSION_MAP;
|
||||||
if (tracks.map(r => r.router).indexOf(toPath) > -1) {
|
if (tracks.map(r => r.router).indexOf(toPath) > -1) {
|
||||||
return _getDefaultSecondLevelMenu(tracks, toPath);
|
return _getDefaultSecondLevelMenu(tracks, toPath);
|
||||||
} else if (apis.map(r => r.router).indexOf(toPath) > -1) {
|
} else if (apis.map(r => r.router).indexOf(toPath) > -1) {
|
||||||
return _getDefaultSecondLevelMenu(apis, toPath);
|
return _getDefaultSecondLevelMenu(apis, toPath);
|
||||||
} else if (loads.map(r => r.router).indexOf(toPath) > -1) {
|
} else if (loads.map(r => r.router).indexOf(toPath) > -1) {
|
||||||
return _getDefaultSecondLevelMenu(loads, toPath);
|
return _getDefaultSecondLevelMenu(loads, toPath);
|
||||||
|
} else if (ui.map(r => r.router).indexOf(toPath) > -1) {
|
||||||
|
return _getDefaultSecondLevelMenu(ui, toPath);
|
||||||
} else {
|
} else {
|
||||||
return toPath;
|
return toPath;
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
</div>
|
</div>
|
||||||
</el-menu-item>
|
</el-menu-item>
|
||||||
<el-menu-item index="/ui" @click="active()" v-if="hasLicense() && check('ui')" onselectstart="return false"
|
<el-menu-item index="/ui" @click="active()" v-if="hasLicense() && check('ui')" onselectstart="return false"
|
||||||
v-permission="['PROJECT_UI_SCENARIO:READ','PROJECT_UI_REPORT:READ']">
|
v-permission="['PROJECT_UI_SCENARIO:READ','PROJECT_UI_REPORT:READ', 'PROJECT_UI_ELEMENT:READ']">
|
||||||
<div>
|
<div>
|
||||||
<svg-icon iconClass="ui" class-name="ms-menu-img"/>
|
<svg-icon iconClass="ui" class-name="ms-menu-img"/>
|
||||||
<span slot="title" class="ms-menu-item-title">{{ $t('commons.ui') }}</span>
|
<span slot="title" class="ms-menu-item-title">{{ $t('commons.ui') }}</span>
|
||||||
|
|
|
@ -226,5 +226,10 @@ export const SECOND_LEVEL_ROUTE_PERMISSION_MAP = {
|
||||||
{router: '/performance/home', permission: ['PROJECT_PERFORMANCE_HOME:READ']},
|
{router: '/performance/home', permission: ['PROJECT_PERFORMANCE_HOME:READ']},
|
||||||
{router: '/performance/test/all', permission: ['PROJECT_PERFORMANCE_TEST:READ']},
|
{router: '/performance/test/all', permission: ['PROJECT_PERFORMANCE_TEST:READ']},
|
||||||
{router: '/performance/report/all', permission: ['PROJECT_PERFORMANCE_REPORT:READ']},
|
{router: '/performance/report/all', permission: ['PROJECT_PERFORMANCE_REPORT:READ']},
|
||||||
|
],
|
||||||
|
UI: [
|
||||||
|
{router: '/ui/automation', permission: ['PROJECT_UI_SCENARIO:READ']},
|
||||||
|
{router: '/ui/element', permission: ['PROJECT_UI_ELEMENT:READ']},
|
||||||
|
{router: '/ui/report', permission: ['PROJECT_UI_REPORT:READ']},
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue