diff --git a/cypress/e2e/user/login.spec.ts b/cypress/e2e/user/login.spec.ts index 238ec77f4..80bf231e7 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 429d813d3..f24a77a22 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 fe3c73ea2..3d3927d8f 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 @@