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