1import AppLayout from '@/layouts/AppLayout.vue'; 2import ChangePassword from '@/views/ChangePassword'; 3import ConsoleLayout from '@/layouts/ConsoleLayout.vue'; 4import DateTime from '@/views/Settings/DateTime'; 5import EventLogs from '@/views/Logs/EventLogs'; 6import FactoryReset from '@/views/Operations/FactoryReset'; 7import Firmware from '@/views/Operations/Firmware'; 8import Inventory from '@/views/HardwareStatus/Inventory'; 9import Kvm from '@/views/Operations/Kvm'; 10import KvmConsole from '@/views/Operations/Kvm/KvmConsole'; 11import Sessions from '../views/SecurityAndAccess/Sessions'; 12import Ldap from '@/views/SecurityAndAccess/Ldap'; 13import UserManagement from '@/views/SecurityAndAccess/UserManagement'; 14import Login from '@/views/Login'; 15import LoginLayout from '@/layouts/LoginLayout'; 16import Network from '@/views/Settings/Network'; 17import Overview from '@/views/Overview'; 18import PageNotFound from '@/views/PageNotFound'; 19import PostCodeLogs from '@/views/Logs/PostCodeLogs'; 20import PowerRestorePolicy from '@/views/Settings/PowerRestorePolicy'; 21import ProfileSettings from '@/views/ProfileSettings'; 22import RebootBmc from '@/views/Operations/RebootBmc'; 23import Policies from '@/views/SecurityAndAccess/Policies'; 24import KeyClear from '@/views/Operations/KeyClear'; 25import Sensors from '@/views/HardwareStatus/Sensors'; 26import SerialOverLan from '@/views/Operations/SerialOverLan'; 27import SerialOverLanConsole from '@/views/Operations/SerialOverLan/SerialOverLanConsole'; 28import ServerPowerOperations from '@/views/Operations/ServerPowerOperations'; 29import Certificates from '@/views/SecurityAndAccess/Certificates'; 30import VirtualMedia from '@/views/Operations/VirtualMedia'; 31import Power from '@/views/ResourceManagement/Power'; 32import SnmpAlerts from '@/views/Settings/SnmpAlerts'; 33import i18n from '@/i18n'; 34 35import Dumps from '@/views/Logs/Dumps'; 36 37const roles = { 38 administrator: 'Administrator', 39 operator: 'Operator', 40 readonly: 'ReadOnly', 41 noaccess: 'NoAccess', 42}; 43 44const routes = [ 45 { 46 path: '/login', 47 component: LoginLayout, 48 children: [ 49 { 50 path: '', 51 name: 'login', 52 component: Login, 53 meta: { 54 title: i18n.global.t('appPageTitle.login'), 55 }, 56 }, 57 { 58 path: '/change-password', 59 name: 'change-password', 60 component: ChangePassword, 61 meta: { 62 title: i18n.global.t('appPageTitle.changePassword'), 63 requiresAuth: true, 64 }, 65 }, 66 ], 67 }, 68 { 69 path: '/console', 70 component: ConsoleLayout, 71 meta: { 72 requiresAuth: true, 73 }, 74 children: [ 75 { 76 path: 'serial-over-lan-console', 77 name: 'serial-over-lan-console', 78 component: SerialOverLanConsole, 79 meta: { 80 title: i18n.global.t('appPageTitle.serialOverLan'), 81 }, 82 }, 83 { 84 path: 'kvm', 85 name: 'kvm-console', 86 component: KvmConsole, 87 meta: { 88 title: i18n.global.t('appPageTitle.kvm'), 89 }, 90 }, 91 ], 92 }, 93 { 94 path: '/', 95 meta: { 96 requiresAuth: true, 97 }, 98 component: AppLayout, 99 children: [ 100 { 101 path: '', 102 name: 'overview', 103 component: Overview, 104 meta: { 105 title: i18n.global.t('appPageTitle.overview'), 106 }, 107 }, 108 { 109 path: '/profile-settings', 110 name: 'profile-settings', 111 component: ProfileSettings, 112 meta: { 113 title: i18n.global.t('appPageTitle.profileSettings'), 114 }, 115 }, 116 { 117 path: '/logs/event-logs', 118 name: 'event-logs', 119 component: EventLogs, 120 meta: { 121 title: i18n.global.t('appPageTitle.eventLogs'), 122 }, 123 }, 124 { 125 path: '/logs/dumps', 126 name: 'dumps', 127 component: Dumps, 128 meta: { 129 title: i18n.global.t('appPageTitle.dumps'), 130 }, 131 }, 132 { 133 path: '/logs/post-code-logs', 134 name: 'post-code-logs', 135 component: PostCodeLogs, 136 meta: { 137 title: i18n.global.t('appPageTitle.postCodeLogs'), 138 }, 139 }, 140 { 141 path: '/hardware-status/inventory', 142 name: 'inventory', 143 component: Inventory, 144 meta: { 145 title: i18n.global.t('appPageTitle.inventory'), 146 }, 147 }, 148 { 149 path: '/hardware-status/sensors', 150 name: 'sensors', 151 component: Sensors, 152 meta: { 153 title: i18n.global.t('appPageTitle.sensors'), 154 }, 155 }, 156 { 157 path: '/security-and-access/sessions', 158 name: 'sessions', 159 component: Sessions, 160 meta: { 161 title: i18n.global.t('appPageTitle.sessions'), 162 }, 163 }, 164 { 165 path: '/security-and-access/ldap', 166 name: 'ldap', 167 component: Ldap, 168 meta: { 169 title: i18n.global.t('appPageTitle.ldap'), 170 }, 171 }, 172 { 173 path: '/security-and-access/user-management', 174 name: 'user-management', 175 component: UserManagement, 176 meta: { 177 title: i18n.global.t('appPageTitle.userManagement'), 178 }, 179 }, 180 { 181 path: '/security-and-access/policies', 182 name: 'policies', 183 component: Policies, 184 meta: { 185 title: i18n.global.t('appPageTitle.policies'), 186 }, 187 }, 188 { 189 path: '/security-and-access/certificates', 190 name: 'certificates', 191 component: Certificates, 192 meta: { 193 title: i18n.global.t('appPageTitle.certificates'), 194 }, 195 }, 196 { 197 path: '/settings/date-time', 198 name: 'date-time', 199 component: DateTime, 200 meta: { 201 title: i18n.global.t('appPageTitle.dateTime'), 202 }, 203 }, 204 { 205 path: '/settings/snmp-alerts', 206 name: 'snmp-alerts', 207 component: SnmpAlerts, 208 meta: { 209 title: i18n.global.t('appPageTitle.snmpAlerts'), 210 }, 211 }, 212 { 213 path: '/operations/factory-reset', 214 name: 'factory-reset', 215 component: FactoryReset, 216 meta: { 217 title: i18n.global.t('appPageTitle.factoryReset'), 218 }, 219 }, 220 { 221 path: '/operations/key-clear', 222 name: 'key-clear', 223 component: KeyClear, 224 meta: { 225 title: i18n.global.t('appPageTitle.keyClear'), 226 }, 227 }, 228 { 229 path: '/operations/kvm', 230 name: 'kvm', 231 component: Kvm, 232 meta: { 233 title: i18n.global.t('appPageTitle.kvm'), 234 }, 235 }, 236 { 237 path: '/operations/firmware', 238 name: 'firmware', 239 component: Firmware, 240 meta: { 241 title: i18n.global.t('appPageTitle.firmware'), 242 }, 243 }, 244 { 245 path: '/settings/network', 246 name: 'network', 247 component: Network, 248 meta: { 249 title: i18n.global.t('appPageTitle.network'), 250 }, 251 }, 252 { 253 path: '/settings/power-restore-policy', 254 name: 'power-restore-policy', 255 component: PowerRestorePolicy, 256 meta: { 257 title: i18n.global.t('appPageTitle.powerRestorePolicy'), 258 }, 259 }, 260 { 261 path: '/resource-management/power', 262 name: 'power', 263 component: Power, 264 meta: { 265 title: i18n.global.t('appPageTitle.power'), 266 }, 267 }, 268 { 269 path: '/operations/reboot-bmc', 270 name: 'reboot-bmc', 271 component: RebootBmc, 272 meta: { 273 title: i18n.global.t('appPageTitle.rebootBmc'), 274 }, 275 }, 276 { 277 path: '/operations/serial-over-lan', 278 name: 'serial-over-lan', 279 component: SerialOverLan, 280 meta: { 281 title: i18n.global.t('appPageTitle.serialOverLan'), 282 exclusiveToRoles: [roles.administrator], 283 }, 284 }, 285 { 286 path: '/operations/server-power-operations', 287 name: 'server-power-operations', 288 component: ServerPowerOperations, 289 meta: { 290 title: i18n.global.t('appPageTitle.serverPowerOperations'), 291 }, 292 }, 293 { 294 path: '/operations/virtual-media', 295 name: 'virtual-media', 296 component: VirtualMedia, 297 meta: { 298 title: i18n.global.t('appPageTitle.virtualMedia'), 299 exclusiveToRoles: [roles.administrator], 300 }, 301 }, 302 { 303 path: '*', 304 name: 'page-not-found', 305 component: PageNotFound, 306 meta: { 307 title: i18n.global.t('appPageTitle.pageNotFound'), 308 }, 309 }, 310 ], 311 }, 312]; 313 314export { routes as default, roles }; 315