From 4274e8d81c6c12b74501f9882cca10a62ef90457 Mon Sep 17 00:00:00 2001 From: "Captain.B" Date: Fri, 6 Mar 2020 15:26:03 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8F=9C=E5=8D=95=E4=B8=8A=E7=9A=84=E6=9D=83?= =?UTF-8?q?=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/common/utils.js | 14 +++++++++++++- frontend/src/performance/App.vue | 9 +++++++-- .../performance/components/HeaderMenus.vue | 19 +++++++++++++++---- .../components/settings/SettingMenu.vue | 18 +++++++++++++++--- 4 files changed, 50 insertions(+), 10 deletions(-) diff --git a/frontend/src/common/utils.js b/frontend/src/common/utils.js index 01df0a25da..4aa4fe946d 100644 --- a/frontend/src/common/utils.js +++ b/frontend/src/common/utils.js @@ -1,4 +1,4 @@ -import {TokenKey} from "./constants"; +import {ROLE_ORG_ADMIN, ROLE_TEST_MANAGER, ROLE_TEST_USER, ROLE_TEST_VIEWER, TokenKey} from "./constants"; export function hasRole(role) { let user = JSON.parse(localStorage.getItem(TokenKey)); @@ -16,3 +16,15 @@ export function hasRoles(...roles) { } return false; } + +export function checkoutCurrentOrganization() { + let user = JSON.parse(localStorage.getItem(TokenKey)); + // 查看当前用户是否是 lastOrganizationId 的组织管理员 + return user.userRoles.filter(ur => hasRole(ROLE_ORG_ADMIN) && user.lastOrganizationId === ur.sourceId).length > 0; +} + +export function checkoutCurrentWorkspace() { + let user = JSON.parse(localStorage.getItem(TokenKey)); + // 查看当前用户是否是 lastWorkspaceId 的工作空间用户 + return user.userRoles.filter(ur => hasRoles(ROLE_TEST_MANAGER, ROLE_TEST_USER, ROLE_TEST_VIEWER) && user.lastWorkspaceId === ur.sourceId).length > 0; +} diff --git a/frontend/src/performance/App.vue b/frontend/src/performance/App.vue index ba196ba121..4572e3895f 100644 --- a/frontend/src/performance/App.vue +++ b/frontend/src/performance/App.vue @@ -17,7 +17,7 @@ - + {{$t('load_test.create')}} @@ -36,12 +36,14 @@ import MsView from "./components/router/View"; import MsUser from "./components/HeaderUser"; import MsWebSocket from "./components/websocket/WebSocket"; + import {checkoutCurrentWorkspace} from "../common/utils"; export default { name: 'app', data() { return { auth: false, + isCurrentWorkspaceUser: false, } }, beforeCreate() { @@ -58,7 +60,10 @@ }); }, components: {MsWebSocket, MsUser, MsMenus, MsView, MsTopMenus}, - methods: {} + methods: {}, + mounted() { + this.isCurrentWorkspaceUser = checkoutCurrentWorkspace(); + } } diff --git a/frontend/src/performance/components/HeaderMenus.vue b/frontend/src/performance/components/HeaderMenus.vue index e6710f0020..4f6abf367c 100644 --- a/frontend/src/performance/components/HeaderMenus.vue +++ b/frontend/src/performance/components/HeaderMenus.vue @@ -4,7 +4,7 @@ {{ $t("i18n.home") }} - + @@ -16,7 +16,8 @@ {{$t('project.create')}} - + @@ -28,7 +29,8 @@ {{$t('load_test.create')}} - + @@ -44,10 +46,19 @@ import MsRecentTestPlan from "./testPlan/RecentTestPlan"; import MsRecentProject from "./project/RecentProject"; import MsRecentReport from "./report/RecentReport"; + import {checkoutCurrentWorkspace} from "../../common/utils"; export default { name: "MsMenus", - components: {MsRecentReport, MsRecentTestPlan, MsRecentProject} + components: {MsRecentReport, MsRecentTestPlan, MsRecentProject}, + data() { + return { + isCurrentWorkspaceUser: false, + } + }, + mounted() { + this.isCurrentWorkspaceUser = checkoutCurrentWorkspace(); + } } diff --git a/frontend/src/performance/components/settings/SettingMenu.vue b/frontend/src/performance/components/settings/SettingMenu.vue index 36b0e0d223..0e1a860b8f 100644 --- a/frontend/src/performance/components/settings/SettingMenu.vue +++ b/frontend/src/performance/components/settings/SettingMenu.vue @@ -11,7 +11,7 @@ 测试资源池 - +