blob: 22662d71a0772f5c767981396fc0d0a35f37a642 [file] [log] [blame]
Derick Montaguefded0d12019-12-11 06:16:40 -06001import Vue from 'vue';
2import VueRouter from 'vue-router';
3import store from '../store/index';
4import AppLayout from '../layouts/AppLayout.vue';
Derick Montaguea2988f42020-01-17 13:46:30 -06005
6Vue.use(VueRouter);
7
Dixsie Wolmerscbcd2132020-01-30 20:58:37 -06008// Meta title is translated using i18n in App.vue and PageTitle.Vue
Yoshie Muranaka547b5fc2020-02-24 15:42:40 -08009// Example meta: {title: 'appPageTitle.overview'}
Derick Montaguea2988f42020-01-17 13:46:30 -060010const routes = [
11 {
Derick Montaguefded0d12019-12-11 06:16:40 -060012 path: '/',
Derick Montaguee080a1a2019-12-04 16:30:08 -060013 meta: {
14 requiresAuth: true
15 },
16 component: AppLayout,
17 children: [
18 {
Derick Montaguefded0d12019-12-11 06:16:40 -060019 path: '',
Yoshie Muranakaf2b3e6c2020-04-28 09:36:45 -070020 name: 'overview',
Derick Montaguefded0d12019-12-11 06:16:40 -060021 component: () => import('@/views/Overview'),
Derick Montaguec8636e52019-12-06 01:28:38 -060022 meta: {
Yoshie Muranaka547b5fc2020-02-24 15:42:40 -080023 title: 'appPageTitle.overview'
Derick Montaguec8636e52019-12-06 01:28:38 -060024 }
Derick Montaguee080a1a2019-12-04 16:30:08 -060025 },
26 {
Sukanya Pandeyb1f559f2020-04-28 20:18:28 +053027 path: '/profile-settings',
28 name: 'profile-settings',
29 component: () => import('@/views/ProfileSettings'),
30 meta: {
31 title: 'appPageTitle.profileSettings'
32 }
33 },
34 {
Yoshie Muranaka6f102342020-05-05 09:45:39 -070035 path: '/health/event-logs',
36 name: 'event-logs',
37 component: () => import('@/views/Health/EventLogs'),
38 meta: {
39 title: 'appPageTitle.eventLogs'
40 }
41 },
42 {
Yoshie Muranaka56ee7692020-05-28 13:28:29 -070043 path: '/health/hardware-status',
44 name: 'hardware-status',
45 component: () => import('@/views/Health/HardwareStatus'),
46 meta: {
47 title: 'appPageTitle.hardwareStatus'
48 }
49 },
50 {
Yoshie Muranaka30abccb2020-03-11 12:44:24 -070051 path: '/health/sensors',
Yoshie Muranakaf2b3e6c2020-04-28 09:36:45 -070052 name: 'sensors',
Yoshie Muranaka30abccb2020-03-11 12:44:24 -070053 component: () => import('@/views/Health/Sensors'),
54 meta: {
55 title: 'appPageTitle.sensors'
56 }
57 },
58 {
Yoshie Muranakac4e38ab2020-04-09 12:41:27 -070059 path: '/access-control/ldap',
60 name: 'ldap',
61 component: () => import('@/views/AccessControl/Ldap'),
62 meta: {
63 title: 'appPageTitle.ldap'
64 }
65 },
66 {
Derick Montaguefded0d12019-12-11 06:16:40 -060067 path: '/access-control/local-user-management',
68 name: 'local-users',
69 component: () => import('@/views/AccessControl/LocalUserManagement'),
Derick Montaguec8636e52019-12-06 01:28:38 -060070 meta: {
Yoshie Muranaka547b5fc2020-02-24 15:42:40 -080071 title: 'appPageTitle.localUserManagement'
Derick Montaguec8636e52019-12-06 01:28:38 -060072 }
Derick Montague126eaab2019-12-23 13:33:52 -060073 },
74 {
Yoshie Muranaka37393812020-03-24 15:25:24 -070075 path: '/access-control/ssl-certificates',
76 name: 'ssl-certificates',
77 component: () => import('@/views/AccessControl/SslCertificates'),
78 meta: {
79 title: 'appPageTitle.sslCertificates'
80 }
81 },
82 {
Sukanya Pandey9055d982020-03-31 17:37:53 +053083 path: '/control/manage-power-usage',
84 name: 'manage-power-usage',
85 component: () => import('@/views/Control/ManagePowerUsage'),
86 meta: {
87 title: 'appPageTitle.managePowerUsage'
88 }
89 },
90 {
Dixsie Wolmersbb81d552020-02-26 19:52:28 -060091 path: '/configuration/network-settings',
92 name: 'network-settings',
93 component: () => import('@/views/Configuration/NetworkSettings'),
94 meta: {
95 title: 'appPageTitle.networkSettings'
96 }
97 },
98 {
Yoshie Muranakac11d3892020-02-19 08:07:40 -080099 path: '/control/reboot-bmc',
100 name: 'reboot-bmc',
101 component: () => import('@/views/Control/RebootBmc'),
102 meta: {
Yoshie Muranaka547b5fc2020-02-24 15:42:40 -0800103 title: 'appPageTitle.rebootBmc'
Yoshie Muranakac11d3892020-02-19 08:07:40 -0800104 }
105 },
106 {
SurenNeware090c2d42020-04-01 14:07:27 +0530107 path: '/control/server-led',
108 name: 'server-led',
109 component: () => import('@/views/Control/ServerLed'),
110 meta: {
111 title: 'appPageTitle.serverLed'
112 }
113 },
114 {
Yoshie Muranakafa1512b2020-02-25 15:54:07 -0800115 path: '/control/server-power-operations',
116 name: 'server-power-operations',
117 component: () => import('@/views/Control/ServerPowerOperations'),
118 meta: {
119 title: 'appPageTitle.serverPowerOperations'
120 }
121 },
122 {
Derick Montague126eaab2019-12-23 13:33:52 -0600123 path: '/unauthorized',
124 name: 'unauthorized',
125 component: () => import('@/views/Unauthorized'),
126 meta: {
Yoshie Muranaka547b5fc2020-02-24 15:42:40 -0800127 title: 'appPageTitle.unauthorized'
Derick Montague126eaab2019-12-23 13:33:52 -0600128 }
Derick Montaguee080a1a2019-12-04 16:30:08 -0600129 }
130 ]
Derick Montaguea2988f42020-01-17 13:46:30 -0600131 },
132 {
Derick Montaguefded0d12019-12-11 06:16:40 -0600133 path: '/login',
134 name: 'login',
135 component: () => import('@/views/Login'),
Derick Montaguec8636e52019-12-06 01:28:38 -0600136 meta: {
Yoshie Muranaka547b5fc2020-02-24 15:42:40 -0800137 title: 'appPageTitle.login'
Derick Montaguec8636e52019-12-06 01:28:38 -0600138 }
Derick Montaguea2988f42020-01-17 13:46:30 -0600139 }
Derick Montaguea2988f42020-01-17 13:46:30 -0600140];
141
142const router = new VueRouter({
Derick Montaguea2988f42020-01-17 13:46:30 -0600143 base: process.env.BASE_URL,
144 routes,
Yoshie Muranaka71ac2302019-12-26 11:43:36 -0800145 linkExactActiveClass: 'nav-link--current'
Derick Montaguea2988f42020-01-17 13:46:30 -0600146});
147
Derick Montaguee080a1a2019-12-04 16:30:08 -0600148router.beforeEach((to, from, next) => {
149 if (to.matched.some(record => record.meta.requiresAuth)) {
Derick Montaguefded0d12019-12-11 06:16:40 -0600150 if (store.getters['authentication/isLoggedIn']) {
Derick Montaguee080a1a2019-12-04 16:30:08 -0600151 next();
152 return;
153 }
Derick Montaguefded0d12019-12-11 06:16:40 -0600154 next('/login');
Derick Montaguee080a1a2019-12-04 16:30:08 -0600155 } else {
156 next();
157 }
158});
159
Derick Montaguea2988f42020-01-17 13:46:30 -0600160export default router;