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 @@