Files
xamxam/TODO.md

2.1 KiB

TODO

  • Fix htmx checkbox "Activer la restriction d'accès": add missing csrf_token in #fieldset-restrictions (fixes token invalide + full parametres.php injection)

  • Convert all file inputs to FilePond (CSV import, file-field.php; fix dialog init + missing CSS/JS on index page)

  • Fix account.php: replace !== CSRF token check with hash_equals (constant-time comparison)

  • Fix ShareLink::setPassword(): also encrypt and store plain-text password, matching create() behavior

  • Audit: confirm all remaining credential comparison sites use constant-time hash_equals or password_verify

  • Fix .gitignore: anchor vendor/ to root (/vendor/) so app/public/assets/js/vendor/ (htmx, OverType, FilePond) is tracked

  • Fix migration 025_lowercase_languages.sql: deduplicate languages before LOWER() to avoid UNIQUE constraint violation (Néerlandais/néerlandais)

  • Fix home page: load ALL published theses grouped by year (desc), shuffled randomly within each year (instead of only ~20 from latest year)

  • Répertoire: colonnes à largeurs différenciées (Années plus étroites, Orientations/AP plus larges)

  • Répertoire: barres de scroll discrètes (thin + semi-transparentes)

  • Répertoire: fontes/graisses conformes à la maquette (Ductus pour titres colonnes, années en bold, etc.)

  • Répertoire: diminutifs des AP entre crochets (ex: Design et Politique du Multiple [DPM])

  • Page TFE: enlever le soulignage de tous les mots/liens

  • Page TFE: harmoniser minuscules pour mots-clés, langues & formats

  • Page TFE: corriger texte inclusif ("utilisateur·ices autorisé·es")

  • Page TFE: empêcher les mots-clés de se couper au milieu du mot lors du wrapping

  • Page TFE: rendre le texte des TFE internes/interdits éditable dans les paramètres

  • Page TFE: afficher CC2r en plus de la licence choisie (ex: "CC2r, CC BY")

  • Page TFE: formater le contact au plus court (stripper https://www., afficher @identifiant pour Instagram/Mastodon)

  • Page TFE: supprimer le lien de téléchargement du PDF sous l'iframe