From 73575302debbe095ce031e4871fb3797a801db18 Mon Sep 17 00:00:00 2001 From: kolaente Date: Thu, 20 Oct 2022 16:15:58 +0200 Subject: [PATCH] fix: password reset --- cypress/e2e/user/login.spec.ts | 5 +++++ src/router/index.ts | 11 ++++++++++- src/views/user/PasswordReset.vue | 6 ++++-- src/views/user/RequestPasswordReset.vue | 2 +- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/cypress/e2e/user/login.spec.ts b/cypress/e2e/user/login.spec.ts index 238ec77f49..80bf231e71 100644 --- a/cypress/e2e/user/login.spec.ts +++ b/cypress/e2e/user/login.spec.ts @@ -55,4 +55,9 @@ context('Login', () => { testAndAssertFailed(fixture) }) + + it('Should redirect to /login when no user is logged in', () => { + cy.visit('/') + cy.url().should('include', '/login') + }) }) diff --git a/src/router/index.ts b/src/router/index.ts index 429d813d3f..f24a77a225 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -481,11 +481,20 @@ export function getAuthForRoute(route: RouteLocation) { 'openid.auth', ].includes(route.name as string) && localStorage.getItem('passwordResetToken') === null && - localStorage.getItem('emailConfirmToken') === null + localStorage.getItem('emailConfirmToken') === null && + !(route.name === 'home' && typeof route.query.userPasswordReset !== 'undefined') ) { saveLastVisited(route.name as string, route.params) return {name: 'user.login'} } + + if(localStorage.getItem('passwordResetToken') !== null && route.name !== 'user.password-reset.reset') { + return {name: 'user.password-reset.reset'} + } + + if(localStorage.getItem('emailConfirmToken') !== null && route.name !== 'user.login') { + return {name: 'user.login'} + } } router.beforeEach((to) => { diff --git a/src/views/user/PasswordReset.vue b/src/views/user/PasswordReset.vue index fe3c73ea28..3d3927d8fe 100644 --- a/src/views/user/PasswordReset.vue +++ b/src/views/user/PasswordReset.vue @@ -7,7 +7,7 @@ {{ successMessage }} - + {{ $t('user.auth.login') }} @@ -34,6 +34,7 @@