Skip to content

Feature/locust performance#398

Open
Moon3233 wants to merge 14 commits into
OpenClassrooms-Student-Center:masterfrom
Moon3233:feature/locust-performance
Open

Feature/locust performance#398
Moon3233 wants to merge 14 commits into
OpenClassrooms-Student-Center:masterfrom
Moon3233:feature/locust-performance

Conversation

@Moon3233

Copy link
Copy Markdown

No description provided.

Moon3233 and others added 14 commits July 3, 2026 16:37
Lorsqu'un secrétaire saisissait un email absent de clubs.json, l'application levait une IndexError et renvoyait une erreur HTTP 500.

La route /showSummary vérifie désormais si un club correspond à l'email soumis. En cas d'échec, un message d'erreur est affiché via flash et l'utilisateur est redirigé vers la page de connexion.

Affichage des messages flash ajouté sur index.html pour rendre l'erreur visible à l'utilisateur.
La route /logout ne faisait qu'une redirection sans supprimer d'état de connexion, car aucune session n'était créée à l'authentification.
Les routes restaient accessible en GET par URL sans être connecté.

Corrections apportées :
- Stockage de l'email du club en session à la connexion (session['club_email'])
- Pattern POST-redirect-GET sur /showSummary et /purchasePlaces
- Protection des routes sensibles via le décorateur @login_required
- Vérification métier require_own_club() (un secrétaire ne réserve que pour son club)
- Gestion GET /purchasePlaces pour éviter l'erreur 405 au retour arrière
- Logout via session.clear() pour invalider la session côté serveur
- Commentaires ajoutés sur les helpers et le flux d'authentification
La route purchasePlaces acceptait toute réservation sans contrôle : surréservation, dépassement de la limite d'équité (12 places), points non déduits, et possibilité de contourner la limite via plusieurs réservations successives (ex. 12 + X places).

Ajout de validate_purchase() pour vérifier le nombre de places (1 à 12 par transaction), la disponibilité en compétition, le solde de points du club et le total cumulé déjà réservé par club/compétition (club_competition_bookings).
Les points et places sont déduits après validation, avec messages flash pour chaque cas invalide et confirmation indiquant le nombre de places achetées.

La page de réservation affiche désormais la limite dynamique, les points restants et le nombre de places déjà réservées pour la compétition.
Ajout de lib64 et pyvenv.cfg au .gitignore pour ne pas versionner le venv.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant