debianize-mobilizon/js/src/router/user.ts

82 lines
2.3 KiB
TypeScript
Raw Normal View History

import RegisterUser from '@/views/User/Register.vue';
import RegisterProfile from '@/views/Account/Register.vue';
import Login from '@/views/User/Login.vue';
import Validate from '@/views/User/Validate.vue';
import ResendConfirmation from '@/views/User/ResendConfirmation.vue';
import SendPasswordReset from '@/views/User/SendPasswordReset.vue';
import PasswordReset from '@/views/User/PasswordReset.vue';
import { beforeRegisterGuard } from '@/router/guards/register-guard';
import { RouteConfig } from 'vue-router';
import EmailValidate from '@/views/User/EmailValidate.vue';
2019-02-22 14:55:47 +01:00
export enum UserRouteName {
REGISTER = 'Register',
REGISTER_PROFILE = 'RegisterProfile',
RESEND_CONFIRMATION = 'ResendConfirmation',
SEND_PASSWORD_RESET = 'SendPasswordReset',
PASSWORD_RESET = 'PasswordReset',
VALIDATE = 'Validate',
LOGIN = 'Login',
}
export const userRoutes: RouteConfig[] = [
2019-02-22 11:24:41 +01:00
{
path: '/register/user',
2019-02-22 14:55:47 +01:00
name: UserRouteName.REGISTER,
2019-02-22 11:24:41 +01:00
component: RegisterUser,
props: true,
meta: { requiredAuth: false },
beforeEnter: beforeRegisterGuard,
2019-02-22 11:24:41 +01:00
},
{
path: '/register/profile',
2019-02-22 14:55:47 +01:00
name: UserRouteName.REGISTER_PROFILE,
2019-02-22 11:24:41 +01:00
component: RegisterProfile,
// We can only pass string values through params, therefore
props: (route) => ({ email: route.params.email, userAlreadyActivated: route.params.userAlreadyActivated === 'true' }),
2019-02-22 11:24:41 +01:00
meta: { requiredAuth: false },
},
{
path: '/resend-instructions',
2019-02-22 14:55:47 +01:00
name: UserRouteName.RESEND_CONFIRMATION,
2019-02-22 11:24:41 +01:00
component: ResendConfirmation,
props: true,
meta: { requiresAuth: false },
},
{
path: '/password-reset/send',
2019-02-22 14:55:47 +01:00
name: UserRouteName.SEND_PASSWORD_RESET,
2019-02-22 11:24:41 +01:00
component: SendPasswordReset,
props: true,
meta: { requiresAuth: false },
},
{
path: '/password-reset/:token',
2019-02-22 14:55:47 +01:00
name: UserRouteName.PASSWORD_RESET,
2019-02-22 11:24:41 +01:00
component: PasswordReset,
meta: { requiresAuth: false },
props: true,
},
{
path: '/validate/email/:token',
name: UserRouteName.VALIDATE,
component: EmailValidate,
props: true,
meta: { requiresAuth: false },
},
2019-02-22 11:24:41 +01:00
{
path: '/validate/:token',
2019-02-22 14:55:47 +01:00
name: UserRouteName.VALIDATE,
2019-02-22 11:24:41 +01:00
component: Validate,
props: true,
2019-02-22 11:24:41 +01:00
meta: { requiresAuth: false },
},
{
path: '/login',
2019-02-22 14:55:47 +01:00
name: UserRouteName.LOGIN,
2019-02-22 11:24:41 +01:00
component: Login,
props: true,
meta: { requiredAuth: false },
},
];