blob: 5424cab802c92ce7cad130745e11ba884ea76353 [file] [log] [blame]
import AppLayout from '@/layouts/AppLayout.vue';
import ChangePassword from '@/views/ChangePassword';
import ConsoleLayout from '@/layouts/ConsoleLayout.vue';
import DateTime from '@/views/Settings/DateTime';
import EventLogs from '@/views/Logs/EventLogs';
import FactoryReset from '@/views/Operations/FactoryReset';
import Firmware from '@/views/Operations/Firmware';
import Inventory from '@/views/HardwareStatus/Inventory';
import Kvm from '@/views/Operations/Kvm';
import KvmConsole from '@/views/Operations/Kvm/KvmConsole';
import Sessions from '../views/SecurityAndAccess/Sessions';
import Ldap from '@/views/SecurityAndAccess/Ldap';
import UserManagement from '@/views/SecurityAndAccess/UserManagement';
import Login from '@/views/Login';
import LoginLayout from '@/layouts/LoginLayout';
import Network from '@/views/Settings/Network';
import Overview from '@/views/Overview';
import PageNotFound from '@/views/PageNotFound';
import PostCodeLogs from '@/views/Logs/PostCodeLogs';
import PowerRestorePolicy from '@/views/Settings/PowerRestorePolicy';
import ProfileSettings from '@/views/ProfileSettings';
import RebootBmc from '@/views/Operations/RebootBmc';
import Policies from '@/views/SecurityAndAccess/Policies';
import KeyClear from '@/views/Operations/KeyClear';
import Sensors from '@/views/HardwareStatus/Sensors';
import SerialOverLan from '@/views/Operations/SerialOverLan';
import SerialOverLanConsole from '@/views/Operations/SerialOverLan/SerialOverLanConsole';
import ServerPowerOperations from '@/views/Operations/ServerPowerOperations';
import Certificates from '@/views/SecurityAndAccess/Certificates';
import VirtualMedia from '@/views/Operations/VirtualMedia';
import Power from '@/views/ResourceManagement/Power';
import SnmpAlerts from '@/views/Settings/SnmpAlerts';
import i18n from '@/i18n';
const roles = {
administrator: 'Administrator',
operator: 'Operator',
readonly: 'ReadOnly',
noaccess: 'NoAccess',
};
const routes = [
{
path: '/login',
component: LoginLayout,
children: [
{
path: '',
name: 'login',
component: Login,
meta: {
title: i18n.t('appPageTitle.login'),
},
},
{
path: '/change-password',
name: 'change-password',
component: ChangePassword,
meta: {
title: i18n.t('appPageTitle.changePassword'),
requiresAuth: true,
},
},
],
},
{
path: '/console',
component: ConsoleLayout,
meta: {
requiresAuth: true,
},
children: [
{
path: 'serial-over-lan-console',
name: 'serial-over-lan-console',
component: SerialOverLanConsole,
meta: {
title: i18n.t('appPageTitle.serialOverLan'),
},
},
{
path: 'kvm',
name: 'kvm-console',
component: KvmConsole,
meta: {
title: i18n.t('appPageTitle.kvm'),
},
},
],
},
{
path: '/',
meta: {
requiresAuth: true,
},
component: AppLayout,
children: [
{
path: '',
name: 'overview',
component: Overview,
meta: {
title: i18n.t('appPageTitle.overview'),
},
},
{
path: '/profile-settings',
name: 'profile-settings',
component: ProfileSettings,
meta: {
title: i18n.t('appPageTitle.profileSettings'),
},
},
{
path: '/logs/event-logs',
name: 'event-logs',
component: EventLogs,
meta: {
title: i18n.t('appPageTitle.eventLogs'),
},
},
{
path: '/logs/post-code-logs',
name: 'post-code-logs',
component: PostCodeLogs,
meta: {
title: i18n.t('appPageTitle.postCodeLogs'),
},
},
{
path: '/hardware-status/inventory',
name: 'inventory',
component: Inventory,
meta: {
title: i18n.t('appPageTitle.inventory'),
},
},
{
path: '/hardware-status/sensors',
name: 'sensors',
component: Sensors,
meta: {
title: i18n.t('appPageTitle.sensors'),
},
},
{
path: '/security-and-access/sessions',
name: 'sessions',
component: Sessions,
meta: {
title: i18n.t('appPageTitle.sessions'),
},
},
{
path: '/security-and-access/ldap',
name: 'ldap',
component: Ldap,
meta: {
title: i18n.t('appPageTitle.ldap'),
},
},
{
path: '/security-and-access/user-management',
name: 'user-management',
component: UserManagement,
meta: {
title: i18n.t('appPageTitle.userManagement'),
},
},
{
path: '/security-and-access/policies',
name: 'policies',
component: Policies,
meta: {
title: i18n.t('appPageTitle.policies'),
},
},
{
path: '/security-and-access/certificates',
name: 'certificates',
component: Certificates,
meta: {
title: i18n.t('appPageTitle.certificates'),
},
},
{
path: '/settings/date-time',
name: 'date-time',
component: DateTime,
meta: {
title: i18n.t('appPageTitle.dateTime'),
},
},
{
path: '/settings/snmp-alerts',
name: 'snmp-alerts',
component: SnmpAlerts,
meta: {
title: i18n.t('appPageTitle.snmpAlerts'),
},
},
{
path: '/operations/factory-reset',
name: 'factory-reset',
component: FactoryReset,
meta: {
title: i18n.t('appPageTitle.factoryReset'),
},
},
{
path: '/operations/key-clear',
name: 'key-clear',
component: KeyClear,
meta: {
title: i18n.t('appPageTitle.keyClear'),
},
},
{
path: '/operations/kvm',
name: 'kvm',
component: Kvm,
meta: {
title: i18n.t('appPageTitle.kvm'),
},
},
{
path: '/operations/firmware',
name: 'firmware',
component: Firmware,
meta: {
title: i18n.t('appPageTitle.firmware'),
},
},
{
path: '/settings/network',
name: 'network',
component: Network,
meta: {
title: i18n.t('appPageTitle.network'),
},
},
{
path: '/settings/power-restore-policy',
name: 'power-restore-policy',
component: PowerRestorePolicy,
meta: {
title: i18n.t('appPageTitle.powerRestorePolicy'),
},
},
{
path: '/resource-management/power',
name: 'power',
component: Power,
meta: {
title: i18n.t('appPageTitle.power'),
},
},
{
path: '/operations/reboot-bmc',
name: 'reboot-bmc',
component: RebootBmc,
meta: {
title: i18n.t('appPageTitle.rebootBmc'),
},
},
{
path: '/operations/serial-over-lan',
name: 'serial-over-lan',
component: SerialOverLan,
meta: {
title: i18n.t('appPageTitle.serialOverLan'),
exclusiveToRoles: [roles.administrator],
},
},
{
path: '/operations/server-power-operations',
name: 'server-power-operations',
component: ServerPowerOperations,
meta: {
title: i18n.t('appPageTitle.serverPowerOperations'),
},
},
{
path: '/operations/virtual-media',
name: 'virtual-media',
component: VirtualMedia,
meta: {
title: i18n.t('appPageTitle.virtualMedia'),
exclusiveToRoles: [roles.administrator],
},
},
{
path: '*',
name: 'page-not-found',
component: PageNotFound,
meta: {
title: i18n.t('appPageTitle.pageNotFound'),
},
},
],
},
];
export { routes as default, roles };