feat(ce): Sprint I — CRUD carbets côté CE #83
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/ce-sprint-i"
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 I — CRUD carbets côté CE
Suite du plan CE management. Permet à un CE_MANAGER de créer/éditer/publier des carbets co-gérés par tous les CE_MANAGERs de son organisation.
Session étendue
session.user.organizationIdajouté (typedef + auth callbacks JWT + session). Permet àcanManageCarbetde check membership sans refetch DB.src/lib/carbet-access.tsMANAGER_ROLESinclut désormaisCE_MANAGER→/espace-hoteET/espace-cesont gardés parrequireOwnerSessioncanManageCarbet(session, carbetOwnerId, linkedOrgIds=[]):session.user.id === carbetOwnerId→ vraisession.user.organizationId ∈ linkedOrgIds→ vrailinkedOrgIds) restent sûrs : CE_MANAGER ne peut rien gérer par défautcreateCarbetaction étendueOrganizationCarbetMembershipdans la même transaction/espace-ce/carbets/[id]au lieu de/espace-hote/Sweep callers
canManageCarbet(8 sites)updateCarbet,setCarbetStatus,deleteCarbet,reorderMedia,deleteMediadansespace-hote/carbets/actions.tsespace-hote/carbets/[carbetId]/page.tsxPOST /api/carbets/[carbetId]/mediaTous chargent désormais
Carbet.organizations(memberships) + passentlinkedOrgIds.Nouvelles pages
/espace-ce/carbets/*page.tsx— liste les carbets co-gérés via OrganizationCarbetMembership, forms Publier/Dépublier/Supprimer pointent vers les actions existantes de/espace-hote(réutilisation totale, pas de duplication)nouveau/page.tsx—requireApprovedOrg(redirect dashboard si pending), CarbetForm + createCarbet (même action que/espace-hote— détecte CE_MANAGER et crée membership)[carbetId]/page.tsx— vérif que le carbet est lié à l'org du user + MediaUploader + CarbetForm (updateCarbetpartagé)Dashboard
/espace-ce/page.tsx: ActionCard « Mes carbets » devient cliquable (le lien marche même en pending, l'org peut préparer des brouillons, seule la publication est bloquée).Test plan
npm test53/53 ✓/espace-ce/carbets/nouveau→ créer carbet → vérif membership + redirect vers /espace-ce/carbets/[id]/espace-hote/carbetsfonctionne toujours (zéro régression)🤖 Generated with Claude Code