Petit bug bien génant trouvé dans ce module : on peut atteindre un nombre de places restantes négatif.
Explications :
L'accès à l'inscription se fait sous la forme d'un lien qui est accessible si le nombre de places restantes est différent de 0
(lignes 459 à 466 de index.php du module Inscription, avec appel à la fonction CLFDisAllowedToSubscribe)
Si 1 étudiant clique sur le lien alors qu'un autre est en train de s'inscrire, on peut passer en dessous de 0. A partir de ce moment là, les inscriptions sont indéfiniment possibles puisque le test (ligne 200 de lib/subscribe.lib.php) ne teste que l'égalité à 0.
2 suggestions :
- patch rapide de la ligne 200 de lib/subscribe.lib.php
- Code: Select all
if (CLFDgetRemainingPlaces($session_id) && $allow_user_to_modify==1)
devient
- Code: Select all
if (CLFDgetRemainingPlaces($session_id)>0 && $allow_user_to_modify==1)
ce qui limite les dégâts
- correction du module en intégrant une vérification que les dernières places libres n'ont pas été prises au moment de l'écriture de l'écriture dans la bdd (ça dépasse malheureusement mes compétences php).