refactor: 不同角色登陆之后跳转不同页面

This commit is contained in:
CaptainB 2021-11-04 11:07:03 +08:00 committed by 刘瑞斌
parent 51ede31c44
commit ed20ffc24a
2 changed files with 16 additions and 9 deletions

View File

@ -8,7 +8,7 @@
@select="handleSelect"
:key="menuKey"
router>
<el-menu-item index="/workstation" onselectstart="return false"
<el-menu-item index="/workstation" onselectstart="return false"
v-permission="['PROJECT_API_DEFINITION:READ','PROJECT_API_SCENARIO:READ','PROJECT_API_REPORT:READ']">
{{ $t('commons.my_workstation') }}
</el-menu-item>
@ -32,10 +32,12 @@
<el-menu-item index="/project" onselectstart="return false"
v-permission="['PROJECT_USER:READ', 'PROJECT_ENVIRONMENT:READ', 'PROJECT_OPERATING_LOG:READ', 'PROJECT_FILE:READ+JAR', 'PROJECT_FILE:READ+FILE', 'PROJECT_CUSTOM_CODE:READ']">
{{$t('commons.project_setting')}}
{{ $t('commons.project_setting') }}
</el-menu-item>
<el-menu-item index="/setting" onselectstart="return false">
<el-menu-item index="/setting" onselectstart="return false"
v-permission="['SYSTEM_USER:READ', 'SYSTEM_WORKSPACE:READ', 'SYSTEM_GROUP:READ', 'SYSTEM_TEST_POOL:READ', 'SYSTEM_SETTING:READ', 'SYSTEM_AUTH:READ', 'SYSTEM_QUOTA:READ','SYSTEM_OPERATING_LOG:READ',
'WORKSPACE_SERVICE:READ', 'WORKSPACE_MESSAGE:READ', 'WORKSPACE_USER:READ', 'WORKSPACE_PROJECT_MANAGER:READ', 'WORKSPACE_PROJECT_ENVIRONMENT:READ', 'WORKSPACE_OPERATING_LOG:READ', 'WORKSPACE_TEMPLATE:READ']">
{{ $t('commons.system_setting') }}
</el-menu-item>
</el-menu>
@ -43,7 +45,6 @@
<script>
import {LicenseKey} from '@/common/js/constants';
import {mapGetters} from "vuex";
import {hasLicense} from "@/common/js/utils";
import {MODULE_CHANGE, ModuleEvent} from "@/business/components/common/head/ListEvent";

View File

@ -7,7 +7,7 @@ import Performance from "@/business/components/performance/router";
import Track from "@/business/components/track/router";
import ReportStatistics from "@/business/components/reportstatistics/router";
import Project from "@/business/components/project/router";
import {getCurrentUserId} from "@/common/js/utils";
import {getCurrentUserId, hasPermissions} from "@/common/js/utils";
// const requireContext = require.context('@/business/components/xpack/', true, /router\.js$/);
// const Report = requireContext.keys().map(key => requireContext(key).report);
@ -16,7 +16,6 @@ Vue.use(VueRouter);
const requireContext = require.context('@/business/components/xpack/', true, /router\.js$/);
const router = new VueRouter({
routes: [
{path: "/", redirect: '/setting/personsetting'},
{
path: "/sidebar",
components: {
@ -62,15 +61,22 @@ function redirectLoginPath(originPath) {
let redirectUrl = sessionStorage.getItem('redirectUrl');
let loginSuccess = sessionStorage.getItem('loginSuccess');
sessionStorage.setItem('redirectUrl', originPath);
// 换一个用户登录同一个浏览器,跳转到 /
if (getCurrentUserId() !== sessionStorage.getItem('lastUser')) {
sessionStorage.setItem('lastUser', getCurrentUserId());
redirectUrl = '/';
if (hasPermissions('PROJECT_USER:READ', 'PROJECT_ENVIRONMENT:READ', 'PROJECT_OPERATING_LOG:READ', 'PROJECT_FILE:READ+JAR', 'PROJECT_FILE:READ+FILE', 'PROJECT_CUSTOM_CODE:READ')) {
redirectUrl = '/project/home';
} else if (hasPermissions('WORKSPACE_SERVICE:READ', 'WORKSPACE_MESSAGE:READ', 'WORKSPACE_USER:READ', 'WORKSPACE_PROJECT_MANAGER:READ', 'WORKSPACE_PROJECT_ENVIRONMENT:READ', 'WORKSPACE_OPERATING_LOG:READ', 'WORKSPACE_TEMPLATE:READ')) {
redirectUrl = '/setting';
} else if (hasPermissions('SYSTEM_USER:READ', 'SYSTEM_WORKSPACE:READ', 'SYSTEM_GROUP:READ', 'SYSTEM_TEST_POOL:READ', 'SYSTEM_SETTING:READ', 'SYSTEM_AUTH:READ', 'SYSTEM_QUOTA:READ', 'SYSTEM_OPERATING_LOG:READ')) {
redirectUrl = '/setting';
} else {
redirectUrl = '/';
}
}
if (redirectUrl && loginSuccess) {
sessionStorage.removeItem('loginSuccess');
router.push(redirectUrl);
}
sessionStorage.setItem('lastUser', getCurrentUserId());
sessionStorage.removeItem('loginSuccess');
}