keksAccountGUI/src/router/index.js

160 lines
4.0 KiB
JavaScript
Raw Normal View History

2019-06-20 16:04:08 +00:00
import Vue from 'vue'
import Router from 'vue-router'
import Startpage from '../views/Startpage'
import Login from '../views/Login'
import Dashboard from '../views/Dashboard'
import store from '../store/store';
import OAuthPermission from '../views/OAuthPermission'
import ListApps from '../views/ListApps'
import AppDetails from '../views/AppDetails'
2019-07-23 16:08:19 +00:00
import NewApp from '../views/NewApp'
2019-08-11 18:48:02 +00:00
import Mail from '../views/Mail'
import Invite from '../views/Invite'
import Register from '../views/Register'
2019-09-25 09:00:55 +00:00
import Access from '../views/Access'
2019-11-22 11:06:33 +00:00
import Profile from '../views/Profile'
2019-06-20 16:04:08 +00:00
2019-11-22 15:13:51 +00:00
import AdminSettings from '../views/admin/Settings'
2019-11-22 17:22:31 +00:00
import AdminUserList from '../views/admin/User'
import AdminUserEdit from '../views/admin/UserEdit'
2019-11-26 16:30:03 +00:00
import AdminAppsList from '../views/admin/App'
import AdminAppDetails from '../views/admin/AppDetail'
import AdminInvite from '../views/admin/Invite'
2019-11-26 16:52:19 +00:00
import AdminInviteNew from '../views/admin/InviteNew'
2019-11-22 15:13:51 +00:00
2019-06-20 16:04:08 +00:00
Vue.use(Router)
function guard(to, from, next){
if(store.state.loggedIn) {
next(); // allow to enter route
} else{
store.state.redirectIfLoggedIn = to;
next('/login'); // go to '/login';
}
}
2019-11-22 15:13:51 +00:00
function admin(to, from, next){
if(store.state.loggedIn) {
next(); // allow to enter route
} else{
store.state.redirectIfLoggedIn = to;
next('/login'); // go to '/login';
}
}
2019-06-20 16:04:08 +00:00
export default new Router({
routes: [
{
path: '/',
name: 'Startpage',
component: Startpage
},
{
path: '/login',
name: 'Login',
component: Login
},
{
path: '/invited',
name: 'Invite',
component: Invite
},
{
path: '/register',
name: 'Register',
component: Register
},
2019-06-20 16:04:08 +00:00
{
path: '/oauth',
name: 'oAuthPermission',
component: OAuthPermission
},
{
beforeEnter: guard,
path: '/dashboard',
name: 'Dashboard',
component: Dashboard
},
{
beforeEnter: guard,
path: '/apps',
name: 'Apps',
component: ListApps
},
2019-09-25 09:00:55 +00:00
{
beforeEnter: guard,
path: '/access',
name: 'Access',
component: Access
},
2019-11-22 11:06:33 +00:00
{
beforeEnter: guard,
path: '/profile',
name: 'Profile',
component: Profile
},
2019-07-23 16:08:19 +00:00
{
beforeEnter: guard,
path: '/apps/new',
name: 'newApp',
component: NewApp
},
2019-06-20 16:04:08 +00:00
{
beforeEnter: guard,
path: '/apps/:id',
name: 'appDetails',
component: AppDetails
2019-08-11 18:48:02 +00:00
},
{
beforeEnter: guard,
path: '/user/mails',
name: 'userMails',
component: Mail
2019-11-22 15:13:51 +00:00
},
{
beforeEnter: admin,
path: '/admin/settings',
name: 'adminSettings',
component: AdminSettings
},
2019-11-22 17:22:31 +00:00
{
beforeEnter: admin,
path: '/admin/user',
name: 'adminUserList',
component: AdminUserList
},
{
beforeEnter: admin,
path: '/admin/user/:id',
name: 'adminUserEdit',
component: AdminUserEdit
},
2019-11-26 16:30:03 +00:00
{
beforeEnter: admin,
path: '/admin/app',
name: 'adminListApp',
component: AdminAppsList
},
{
beforeEnter: admin,
path: '/admin/app/:id',
name: 'adminAppDetail',
component: AdminAppDetails
},
{
beforeEnter: admin,
path: '/admin/invite',
name: 'adminInvite',
component: AdminInvite
},
2019-11-26 16:52:19 +00:00
{
beforeEnter: admin,
path: '/admin/invite/new',
name: 'adminInviteNew',
component: AdminInviteNew
},
2019-11-26 16:30:03 +00:00
2019-06-20 16:04:08 +00:00
]
})