fix: password reset
continuous-integration/drone/push Build is failing Details

This commit is contained in:
kolaente 2022-10-20 16:15:58 +02:00
parent 4ed665fbd9
commit 73575302de
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
4 changed files with 20 additions and 4 deletions

View File

@ -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')
})
})

View File

@ -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) => {

View File

@ -7,7 +7,7 @@
<message variant="success">
{{ successMessage }}
</message>
<x-button :to="{ name: 'user.login' }">
<x-button :to="{ name: 'user.login' }" class="mt-4">
{{ $t('user.auth.login') }}
</x-button>
</div>
@ -34,6 +34,7 @@
<script setup lang="ts">
import {ref, reactive} from 'vue'
import {useI18n} from 'vue-i18n'
import {useRouter} from 'vue-router'
import PasswordResetModel from '@/models/passwordReset'
import PasswordResetService from '@/services/passwordReset'
@ -41,6 +42,7 @@ import Message from '@/components/misc/message.vue'
import Password from '@/components/input/password.vue'
const {t} = useI18n({useScope: 'global'})
const router = useRouter()
const credentials = reactive({
password: '',
@ -59,7 +61,7 @@ async function submit() {
const passwordReset = new PasswordResetModel({newPassword: credentials.password})
try {
const {message} = passwordResetService.resetPassword(passwordReset)
const {message} = await passwordResetService.resetPassword(passwordReset)
successMessage.value = message
localStorage.removeItem('passwordResetToken')
} catch (e) {

View File

@ -7,7 +7,7 @@
<message variant="success">
{{ $t('user.auth.resetPasswordSuccess') }}
</message>
<x-button :to="{ name: 'user.login' }">
<x-button :to="{ name: 'user.login' }" class="mt-4">
{{ $t('user.auth.login') }}
</x-button>
</div>