feat: Rollback signup on error, cleanup userDto and comment createdBy
This commit is contained in:
@@ -3,15 +3,14 @@ import type { CreateCommentDto, CommentDto } from '~/.api-client'
|
||||
export function useComment(applicationFormId: string) {
|
||||
const commentStore = useCommentStore()
|
||||
const { createComment, updateComment } = commentStore
|
||||
const { userDto } = useAuth()
|
||||
const { user } = useAuth()
|
||||
const isEditingComment = ref(false)
|
||||
const currentEditedComment = ref<CommentDto | null>(null)
|
||||
const commentTextAreaValue = ref('')
|
||||
|
||||
async function submitComment(formElementId: string) {
|
||||
const newCommentDto: CreateCommentDto = {
|
||||
message: commentTextAreaValue.value,
|
||||
createdBy: userDto.value
|
||||
message: commentTextAreaValue.value
|
||||
}
|
||||
try {
|
||||
await createComment(applicationFormId, formElementId, newCommentDto)
|
||||
@@ -51,7 +50,7 @@ export function useComment(applicationFormId: string) {
|
||||
}
|
||||
|
||||
function isCommentByUser(comment: CommentDto) {
|
||||
return comment.createdBy.id === userDto.value.id
|
||||
return comment.createdBy.id === user.value?.id
|
||||
}
|
||||
|
||||
return {
|
||||
|
||||
@@ -50,6 +50,11 @@ export function useAuth() {
|
||||
fetchOptions: {
|
||||
headers
|
||||
},
|
||||
user: {
|
||||
deleteUser: {
|
||||
enabled: true
|
||||
}
|
||||
},
|
||||
plugins: [
|
||||
organizationClient({
|
||||
// Pass the same access control instance and roles to client
|
||||
@@ -158,25 +163,19 @@ export function useAuth() {
|
||||
return res
|
||||
}
|
||||
|
||||
const userDto = computed<UserDto>(() => ({
|
||||
id: user.value?.id ?? '',
|
||||
name: user.value?.name ?? 'Unknown'
|
||||
}))
|
||||
|
||||
return {
|
||||
session,
|
||||
user,
|
||||
userDto,
|
||||
loggedIn: computed(() => !!session.value),
|
||||
signIn: client.signIn,
|
||||
signUp: client.signUp,
|
||||
deleteUser: client.deleteUser,
|
||||
signOut,
|
||||
organization: client.organization,
|
||||
organizations,
|
||||
selectedOrganization,
|
||||
options,
|
||||
fetchSession,
|
||||
fetchJwtAndOrganizations,
|
||||
client,
|
||||
jwt,
|
||||
isPublicRoute,
|
||||
|
||||
@@ -15,7 +15,7 @@ export function useBetterAuth() {
|
||||
return Promise.reject()
|
||||
}
|
||||
|
||||
await organization.create(
|
||||
return await organization.create(
|
||||
{ name, slug, logo },
|
||||
{
|
||||
onSuccess: () => {
|
||||
|
||||
@@ -86,7 +86,7 @@ import type { StepperItem } from '@nuxt/ui'
|
||||
const { getAllApplicationFormTemplates } = useApplicationFormTemplate()
|
||||
const { createApplicationForm, submitApplicationForm } = useApplicationForm()
|
||||
const { validateFormElements, getHighestComplianceStatus } = useApplicationFormValidator()
|
||||
const { userDto, selectedOrganization } = useAuth()
|
||||
const { selectedOrganization } = useAuth()
|
||||
const { canCreateApplicationForm, getCurrentRoleInfo } = usePermissions()
|
||||
const toast = useToast()
|
||||
|
||||
@@ -196,8 +196,6 @@ async function prepareAndCreateApplicationForm() {
|
||||
return null
|
||||
}
|
||||
|
||||
applicationFormTemplate.value.createdBy = userDto.value
|
||||
applicationFormTemplate.value.lastModifiedBy = userDto.value
|
||||
applicationFormTemplate.value.organizationId = selectedOrganization.value?.id ?? ''
|
||||
|
||||
return await createApplicationForm(applicationFormTemplate.value)
|
||||
|
||||
@@ -27,7 +27,7 @@ definePageMeta({ layout: 'auth' })
|
||||
useSeoMeta({ title: 'Sign up' })
|
||||
|
||||
const toast = useToast()
|
||||
const { signUp } = useAuth()
|
||||
const { signUp, deleteUser } = useAuth()
|
||||
const { createUser } = useUser()
|
||||
|
||||
const fields = [
|
||||
@@ -116,8 +116,9 @@ function onSubmit(payload: FormSubmitEvent<Schema>) {
|
||||
|
||||
await navigateTo('/')
|
||||
},
|
||||
onError: (ctx) => {
|
||||
onError: async (ctx) => {
|
||||
console.log(ctx.error.message)
|
||||
await deleteUser({ callbackURL: '/signup' })
|
||||
useToast().add({
|
||||
title: 'Fehler bei der Registrierung',
|
||||
description: ctx.error.message,
|
||||
|
||||
Reference in New Issue
Block a user