From 72843f24257e2cf4edd8661c9923868be414b50f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Pons?= Date: Wed, 15 Oct 2025 14:58:59 +0200 Subject: [PATCH] Fix registration email and add no character friendly messages --- db.sqlite-shm | Bin 32768 -> 32768 bytes db.sqlite-wal | Bin 123632 -> 638632 bytes pages/character/index.client.vue | 87 ++++++++++++++++++------------- pages/character/list.client.vue | 40 ++++++++------ server/api/auth/register.post.ts | 3 +- server/api/character.get.ts | 5 +- server/api/character.post.ts | 3 +- server/api/character/[id].get.ts | 2 +- 8 files changed, 81 insertions(+), 59 deletions(-) diff --git a/db.sqlite-shm b/db.sqlite-shm index de842e2c30c91794e3b78fcdf9281407bb386d8a..cf5acf8655634b49b738f7ca552114c8d8e4bf0f 100644 GIT binary patch literal 32768 zcmeI*$8Hos5XSL8$p&n|#6|(r6{5;jlZivtLQ2p6TuFuKqnhP2zhQE>2jsgOU$6ezE-A_^GM+$H$hc z(z@!3Uo}6=e>Ws+zkO{@{O5Yxsx92Ue|(XeW@zfc&ZfO(2g|OOqbx^TZnnH&`7-rh zU}I;?^wF*J=92cj%yPMFO`CEVk@s>DB9gA85JPH@Z69 zyf=Dlz0v<$dd=>v^f~{#|G(aT8VyY$0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J- zkbndvAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(T zKmvIoP)JYu=fzEP{gSThghB%ODd768C?t@d0k-(kDmiRGD!U za6S0KjJ{zWZf6%+SHd3jVh}?Z#t7@RSjt$&Gm$c;P|h4GS-7$<~0+X1`RA#e; zB&%4%IyO+tR<^T~-PWtb6h#n$M36-pT+=CoduwY6L|dSs?JHB!u2I!VKmrnwfCMBU0SQPz Y0uqpb1Trn)zKyJqfCMBUfqx791xZ0n6FRKzs7D5PN% k^FOA^AHsQn0v}izSvG%UQf1pLlyZe>60_E3f%Fd&0LE-Vr2qf` diff --git a/db.sqlite-wal b/db.sqlite-wal index 9a844761fff6539b927ba0f70c5914661a5b20ce..c392a4b5dcd82ffb8bf3aef1b61110ef660dd93d 100644 GIT binary patch delta 13984 zcmeI2d0Z3M7RNIr$RcD!Td|;k8W4R3lgZweJ_`z>Wd~VQBrAIW2_RHdw0>;0DjI8q zYJC)+3obwrt)iAz+^SM)pSV^`Fu`tC%?Jhd(NDD z&SW}|TkLr5ws;@Zd20lXMjHfPhrC=P{RG_skLo(cIo1D=^8JB&JLm=Mu;CsUwCsO? zW6rhcl8eRHD<@YN#xVkiy65ntB|kM91X>3Qc<TGD;%MJlVps!o93zlFW_H(u zhIga}foB5+j&I!&(|A~I@B%uH5tttGc*oOg%nuC$&j$*apZcR`Vb5oVH9*HP0<|M{ zG227883c4-92*DQhL^68+dB2mz+FF%3eXIJv>g4c5M_br|X2xuzG27s+@K)VT zJIKD$zxXlJ3_h=GbAk3Vz;`^fFUsAg=rt_BTVpV8+f*~5p*<(h8jhry!5%btH|){- zZ)@U@xtzJYve@Oejrn*+xD}*z*~=O<3~qqVLD~Rd4h3cjq+I|^J7DHO+EQQ+0cIei zTkH(62Eo8~g>-vSn+Z42og2#R#9vmMN4nzLG2Eh{OnbErmiNg@`ZWN#$Tju4MBSQUO~g zLlCx7$d!Q+v4|(*_CmCQ6OHIK9m-jQ?7>vRAYCUqmEk~YA*6E}4eYn|hv;%q+W~w& z0a{nVa(xF_=+ul(nVJyFDu2{mW(z(uV^-5(8M7KJ*y!hy__35WgeF= z;!KW9ktQUQm|k2aKf^aSE?S~W^-f9;h|NtCq^rgJ+{B=i_~cNIDoyP#tllFH}JPfZS-!sW+_vt~qwOxJJ#R#?2PzkH{)AoWU<8dI<8ZWF_n=7$tj*|m%;1|e_&4}wWpG73JPmwcH-zpA_4fvy zNgvxE8ysT;UPd+7c^9haD_m#ys-336E%52ewVWgHEN8km)X#qdeMuiq=UJIpM4*j^ zit&PMso1#w)L!p|-V<2S;AOBCh@a=oMISTrb0A7Xf^DpbOh)HZmMmWUa$R&te#uc;qO1X;7 z7bsP1sSM$AOG0&`3*E^XhUc;_#}K1T)5Tn97i*{fWa1X zBodB9AQFj$LV=La6N@GB7Tu@8!6O-5o=7Yd^LZjfEJ3&;fd~Lhgw>KjJQ_#snXv8;>n!E!< z=P^VGS192N5CA7Y_#A*Cj_>%l5GY|LuhD6nYe&XRM<)-#Eofrvo&3z#P9Du@Ce(od zrc60qx3)PkbYe25OzC%t^_3}6R9|4hTegiF%e#B^O=*LcY6D7}|MvnLhZa5pCgmAB{Ck5%@uN#N|lNuQpjXzCaogMq${o$zxToX zr+1B+bT`PQ`YQHKCS~nRVKgP5Rkd$qY*vpIx&`J3|3NKqU#NnzYup8TY{wo%e~mt=+`LLOHl1dcw5304!17Rl<~O;LZl+L+;%yr~r%KnJex(m50K z6(E_l#&@(aD{Wt%$CFPBTuiy6PhlKwA}d{AX@6EW)64%aWTjJm8?upNjr(oo2Da`Q z1x*smseggu_CSj3(-dF4C_DNK&$>oG&}T|7qLAGMLylBlfLa>-PD$lsEN}$@++*ZPVyxkM7E`O8N&=Fu~fd z(SPM$nw+PUA~FS+t>g*?Y(7seWy`=_3Q!*LIN*MTNUTut&s4qL=< z1rbFoV-$32*qLTh6czXs^^&?_3m->pqMV|dh$8*`t@^iVxz400s_`jWF8gL(wPg8F zPH~Kg!Zq)!>G^OD07&-zjW((Eh&mxe2UXDOGSG( zJDPHe6GRku?z{W{60-9gDT)*L6aiVIQ*9hAYbmEVO+;~QK}*j!Uq@JwqBxCDv2o-s z-)>2O4M?`ULfzOfiLj$}?QTX9gB<_4swr*}C<-1-{C=tc@)&Sae^zxtwhT@$IjyJ#jpMMC$XV5w{8M9L#7hKM4` zeMY3;#Z6wMd=Z0BQCXzDQ?A&RsB5P{?v9-6m#(@Lf86)zW8MD3CbyA zi6{=W#xF??X%8bs5sObzvvT_-w+j|!lv5~)C^AdcyH -
-
- -
-
- {{ character.name }} - -
- Niveau {{ character.level }} - - {{ config.peoples[character.people!]?.name }} -
-
-
-
-
-
- Editer - - Dupliquer - - - - Supprimer - - - - - Supprimer {{ character.name }} ? -
- - +
Erreur de chargement {{ error?.message }} diff --git a/pages/character/list.client.vue b/pages/character/list.client.vue index a7d9d78..00be780 100644 --- a/pages/character/list.client.vue +++ b/pages/character/list.client.vue @@ -13,24 +13,34 @@ const config = characterConfig as CharacterConfig;
-
-
- -
-
- {{ character.name }} - -
- Niveau {{ character.level }} - - {{ config.peoples[character.people!]?.name }} +
Erreur de chargement {{ error?.message }} diff --git a/server/api/auth/register.post.ts b/server/api/auth/register.post.ts index 2d814c1..0cc6b3f 100644 --- a/server/api/auth/register.post.ts +++ b/server/api/auth/register.post.ts @@ -5,7 +5,6 @@ import { usersDataTable, usersTable } from '~/db/schema'; import { schema } from '~/schemas/registration'; import { checkSession, logSession } from '~/server/utils/user'; import type { UserSession, UserSessionRequired } from '~/types/auth'; -import sendMail from '~/server/tasks/mail'; import type { $ZodIssue } from 'zod/v4/core'; interface SuccessHandler @@ -84,7 +83,7 @@ export default defineEventHandler(async (e): Promise => { id: emailId, timestamp, } }); - await sendMail({ + await runTask('mail', { payload: { type: 'mail', to: [body.data.email], diff --git a/server/api/character.get.ts b/server/api/character.get.ts index 9b362d4..335c9e5 100644 --- a/server/api/character.get.ts +++ b/server/api/character.get.ts @@ -16,9 +16,9 @@ export default defineEventHandler(async (e) => { let where: ((character: typeof characterTable._.config.columns, sql: Operators) => SQL | undefined) | undefined = undefined; const db = useDatabase(); + const session = await getUserSession(e); if(visibility === "own") { - const session = await getUserSession(e); if(!session.user) { setResponseStatus(e, 401); @@ -33,7 +33,6 @@ export default defineEventHandler(async (e) => { } else if(visibility === 'admin') { - const session = await getUserSession(e); if(!session.user) { setResponseStatus(e, 401); @@ -73,7 +72,7 @@ export default defineEventHandler(async (e) => { people: character.people, level: character.level, aspect: character.aspect, - notes: character.notes, + notes: { public: character.public_notes, private: session.user?.id === character.owner ? character.private_notes : undefined }, variables: character.variables, training: character.training.reduce((p, v) => { p[v.stat] ??= {}; p[v.stat][v.level as TrainingLevel] = v.choice; return p; }, {} as Record>>), diff --git a/server/api/character.post.ts b/server/api/character.post.ts index f4eef9e..5339f1d 100644 --- a/server/api/character.post.ts +++ b/server/api/character.post.ts @@ -31,7 +31,8 @@ export default defineEventHandler(async (e) => { people: body.data.people!, level: body.data.level, aspect: body.data.aspect, - notes: body.data.notes, + public_notes: body.data.notes.public, + private_notes: body.data.notes.private, variables: body.data.variables, visibility: body.data.visibility, thumbnail: body.data.thumbnail, diff --git a/server/api/character/[id].get.ts b/server/api/character/[id].get.ts index 6ab7cfb..4ab44f9 100644 --- a/server/api/character/[id].get.ts +++ b/server/api/character/[id].get.ts @@ -43,7 +43,7 @@ export default defineEventHandler(async (e) => { people: character.people, level: character.level, aspect: character.aspect, - notes: { public: character.public_notes, private: character.private_notes }, + notes: { public: character.public_notes, private: session.user?.id === character.owner ? character.private_notes : undefined }, variables: character.variables, training: character.training.reduce((p, v) => { p[v.stat] ??= {}; p[v.stat][v.level as TrainingLevel] = v.choice; return p; }, {} as Record>>),