Commit graph

4 commits

Author SHA1 Message Date
b7f381828f feat: permettre le renvoi du lien d'invitation quand le token Supabase a expiré (24h)
Le token OTP Supabase expire après 24h (max autorisé) mais l'invitation applicative reste valide 7 jours. Quand le lien est expiré, l'invité peut maintenant demander un nouveau lien en un clic au lieu d'être bloqué. L'email est inclus dans l'URL d'invitation (urlquery-encodé) pour éviter de le redemander.
2026-03-13 00:33:28 +01:00
a283c4c083 feat: système d'invitation par les contributeurs Éloquent (1000+ pts)
Permet aux contributeurs confirmés d'inviter de nouvelles personnes par email. L'invité reçoit un lien, choisit son mot de passe, et son compte est créé avec la moitié de la réputation de l'inviteur. L'inviteur reçoit +50 pts.

Domain : entité Invitation (Effect Schema), use cases inviteUser et acceptInvitation, permissions invite_user, ContributorRepository et InvitationRepository, extraction de DatabaseError dans errors.ts.

Infra : repositories Supabase, migration table invitations avec index unique partiel, RPC get_user_id_by_email, template email personnalisé.

UI : page /inviter avec formulaire, page /accepter-invitation avec choix de mot de passe (token consommé uniquement à la soumission), lien Inviter dans AuthSection, NoticeBanner pour les redirections avec message.

Correctifs issus de la revue de code : rollback de l'invitation si l'envoi d'email échoue, try/catch + Sentry dans inviteUserAction, ignoreDuplicates dans le callback auth pour ne pas écraser la réputation, exclusion de .direnv dans vitest.
2026-02-27 23:56:20 +01:00
8be2d8f45c chore: reformater les fichiers existants avec Prettier 2026-02-13 13:24:07 +01:00
d53fd38d9a feat: ajouter les templates d'emails Supabase en français
6 templates versionnés dans supabase/templates/ et référencés dans config.toml :
confirmation, réinitialisation mot de passe, changement d'email, invitation,
magic link, réauthentification.
2026-02-12 15:45:00 +01:00