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.
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add extra validations for links, trackers; and news #385
base: master
Are you sure you want to change the base?
Add extra validations for links, trackers; and news #385
Changes from 1 commit
d6ba4d0
84db414
ec79de0
7a706af
2552255
676b0ef
e7dffa7
8a91804
46aeada
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Il faudrait aussi tester si la valeur est une string vide (c'est possible en ouvrant la console du navigateur et en supprimant l'attribut
required
du<input>
).En fait, la validation devrait vérifier si la valeur appartient aux langues possibles et refuser si ce n'est pas le cas où si c'est la langue
xx
.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pour la langue, malheureusement, c'est plus compliqué à définir l'association que pour la section, parce qu'on ne peut pas utiliser
validates_associated_to
: en base de donnée, la langue est juste une string de 2 caractères.Je n'ai pas compris pourquoi les langues ne sont définies que dans la base Redis et non pas dans la base mysql, c'est dommage :/
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, c'est bon, j'ai trouvé sur StackOverflow une solution théorique avec
validates_inclusion_of
: https://stackoverflow.com/a/4730085L'idée serait de tester directement dans le modèle de Bookmark, l'inclusion dans la liste générée par Lang sans la valeur "xx".
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
C'est fait et j'ai ajouté le test dans models/link et dans models/bookmark pour les liens des dépêches et la section lien.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On a aussi besoin d'ajouter la même validation pour la section dans ce controlleur.
Si je procède à la même manipulation (enlever l'attribut required), alors, j'ai cette erreur qui apparaît:
Ça serait plus sympa d'avoir un bon message d'erreur du controlleur pour éviter de perdre le contenu de la dépêche soumise sans espace de rédaction :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Théoriquement, pour valider une association à une table (donc, pour la section de news ici), on peut utiliser les propriétés: validates_associated (validation de l'appartenance à la liste) et validates_presence_of (validation de la présence de la valeur) ensemble.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
J'ai ajouté "validates_associated" et j'ai changé le système de "prévisualisation" pour ne prévisualiser que si le contenu est valide.
La capture d'écran d'erreur que j'ai posté plus haut était due au fait que l'on essaie de faire la preview d'une news sans section.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On peut envoyer en Anonyme en modération une dépêche avec un lien sans langue définie.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On peut injecter des langues inconnues sur un lien de dépêche en Anonyme (et ensuite le site essaie d'afficher une image inexistante).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
En rédaction, on peut générer des 500 en envoyant des identifiants de section invalide pour la dépêche en cours.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Je n'ai pas eu le temps de testé, mais j'imagine qu'il y aura le même problème que pour la section de
news
.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Encore un 500 si on soumet avec un id de catégorie inconnu.
ActiveRecord::InvalidForeignKey (Mysql2::Error: Cannot add or update a child row: a foreign key constraint fails (
linux fr
.trackers
, CONSTRAINTfk_trackers_on_category_id
FOREIGN KEY (category_id
) REFERENCEScategori es
(id
)): INSERT INTOtrackers
(...)