Billeteries privées : lien unique + mot de passe, prix et quota au BO - #2392
Merged
Merged
Conversation
…quota définis au BO
…) + variable eventSlug dans la porte publique
xavierleune
approved these changes
Sep 14, 2026
stakovicz
approved these changes
Sep 14, 2026
vgreb
approved these changes
Sep 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Contexte
Permet aux écoles / entreprises (etc.) de prendre des places pour un évènement via un lien unique protégé par mot de passe, sans création de token sponsor ni manipulation de la part des bénévoles AFUP.
Ce que fait la PR
Back-office
ROLE_ADMIN) : liste + création, un objet = une billeterie privée.afup_forum_tarif), prix, nombre de places disponibles (quota), fenêtre de vente (dates début/fin), mot de passe (stocké hashé).base64_encode(random_bytes(30))), affiché dans la liste avec le lien public copiable.Public
/event/{slug}/tickets/billeterie-privee/{token}— saisie du mot de passe (CSRF + rate limiter 10/h), token + auth mémorisés en session.TicketAction→PaymentAction, CB/virement inchangés) : formule unique au prix imposé, nombre de participants limité aux places restantes, re-vérification du quota au submit, page « complet » si quota atteint.special_price_token(afup_inscription_forum) : aucune migration sur les inscriptions, comptage fiable du quota (annulations exclues).Technique
afup_forum_billeterie_privee.BilleteriePrivee,Inscriptionminimale en lecture seule surafup_inscription_forum) conformes aux ADR-001 (code en français) et ADR-002 (ORM Doctrine).TicketType/PurchaseType/PurchaseTypeFactory(optionbilleterie_privee,max_personnes) sans modifier le comportement des circuits existants (tokens sponsor et prix spéciaux).Validation
lint:containerOKBilleteriePriveeRepositoryTest(quota, token strictement identique, inscriptions annulées exclues)