feat(ce): Sprint L — email auto invites + admin memberships UI #86
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/ce-sprint-l"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Sprint L — Email auto invites + admin memberships UI
Clean-up des loose ends du module CE management (Sprints G→K).
Email automatique pour les invites CE_MEMBER
sendCeInviteEmail(to, orgName, inviteUrl, inviterName?)— template best-effort (dry-run sans Resend), bouton CTA + lien direct en plain text, mention TTL 14j + warning si pas le destinataire attenducreateInviteActionbranche l'envoi automatique quand un email est renseigné dans le formulaire ; audit log gagneemailedAutomaticallyInviteFormUI : affiche « lien généré · email envoyé » quand un email était fourniAvant : le CE_MANAGER générait un lien et devait le copier dans son outil de messagerie. Maintenant : il met un email → le destinataire reçoit le mail directement.
Admin
/admin/carbets/[id]: section memberships orgssrc/lib/admin/carbets.ts:getCarbetForEditinclut désormaisorganizations(memberships) avec leurs orgslistOrganizationsForLink()(toutes orgs triéesapproved desc)linkCarbetToOrganizationAction(carbetId, orgId)— idempotent (re-link sur paire existante = no-op)unlinkCarbetFromOrganizationAction(carbetId, orgId)admin.carbets, eventscarbet.org.link/carbet.org.unlink<CarbetMemberships />client component : liste les orgs liées (badge « pending » si org non approuvée) + select des orgs disponibles (filtre auto les orgs déjà liées) + boutons Lier/Délier + état désactivé quand tout est liéPermet maintenant de :
Test plan
npm test62/62 ✓/espace-ce/membres→ formulaire avec email rempli → submit → vérifier log email dry-run + UI affiche « email envoyé »/admin/carbets/[id]→ section « Organisations co-gestionnaires (CE) » → select + bouton Lier → membership créé → audit log🤖 Generated with Claude Code