formulaire_editer_article_verifier : vérification incomplète
#3686
Closed
opened 7 years ago by peetdu
·
5 comments
No Branch/Tag Specified
1.8
1.9.1
1.9.2
2.0
2.1
3.0
3.1
3.2
4.0
4.1
4.2
boutons-danger
coquille_doc
debug_ecrire_fichier
dev-sortable
dev/autoloader
dev/hasard_fixe
dev/instituer_ergo
dev/issue_4626_menu_squelettes
dev/issue_5447_exporter_csv
dev_infos_image
fix/valider_url_distante
fix_issue_5454
fix_modifier_login
issue_4101
issue_4678
issue_4705
issue_4717
issue_4836
issue_4946
issue_5258
issue_5344
issue_5427_bis
issue_5483_find_script_jquery
issue_5487_info_maj
master
v1.8.3+b
v1.9.1+i
v1.9.2+f
v1.9.2+g
v1.9.2+h
v1.9.2+i
v1.9.2+j
v1.9.2+k
v1.9.2+m
v1.9.2+n
v1.9.2+o
v1.9.2+p
v2.0.0
v2.0.1
v2.0.10
v2.0.11
v2.0.12
v2.0.13
v2.0.14
v2.0.15
v2.0.16
v2.0.17
v2.0.18
v2.0.19
v2.0.2
v2.0.20
v2.0.21
v2.0.22
v2.0.23
v2.0.24
v2.0.25
v2.0.26
v2.0.3
v2.0.5
v2.0.6
v2.0.7
v2.0.8
v2.0.9
v2.1.0
v2.1.1
v2.1.10
v2.1.11
v2.1.12
v2.1.13
v2.1.14
v2.1.15
v2.1.16
v2.1.17
v2.1.18
v2.1.19
v2.1.2
v2.1.20
v2.1.21
v2.1.22
v2.1.23
v2.1.24
v2.1.25
v2.1.26
v2.1.27
v2.1.28
v2.1.29
v2.1.3
v2.1.30
v2.1.4
v2.1.5
v2.1.6
v2.1.7
v2.1.8
v2.1.9
v3.0.0
v3.0.0-alpha.1
v3.0.0-beta
v3.0.0-beta.2
v3.0.0-rc
v3.0.1
v3.0.10
v3.0.11
v3.0.12
v3.0.13
v3.0.14
v3.0.15
v3.0.16
v3.0.17
v3.0.18
v3.0.19
v3.0.2
v3.0.20
v3.0.21
v3.0.22
v3.0.23
v3.0.24
v3.0.25
v3.0.26
v3.0.27
v3.0.28
v3.0.3
v3.0.4
v3.0.5
v3.0.6
v3.0.7
v3.0.8
v3.0.9
v3.1.0
v3.1.0-alpha
v3.1.0-beta
v3.1.0-rc
v3.1.0-rc.2
v3.1.0-rc.3
v3.1.1
v3.1.10
v3.1.11
v3.1.12
v3.1.13
v3.1.14
v3.1.15
v3.1.2
v3.1.3
v3.1.4
v3.1.5
v3.1.6
v3.1.7
v3.1.8
v3.1.9
v3.2-alpha.1
v3.2.0
v3.2.0-alpha.1
v3.2.0-beta
v3.2.0-beta.2
v3.2.0-beta.3
v3.2.1
v3.2.10
v3.2.11
v3.2.12
v3.2.13
v3.2.14
v3.2.15
v3.2.16
v3.2.17
v3.2.2
v3.2.3
v3.2.4
v3.2.5
v3.2.6
v3.2.7
v3.2.8
v3.2.9
v4.0.0
v4.0.0-alpha
v4.0.0-beta
v4.0.1
v4.0.2
v4.0.3
v4.0.4
v4.0.5
v4.0.6
v4.0.7
v4.0.8
v4.0.9
v4.1.0
v4.1.0-alpha
v4.1.0-beta
v4.1.0-rc
v4.1.1
v4.1.2
v4.1.3
v4.1.4
v4.1.5
v4.1.6
v4.1.7
v4.2.0-alpha
v4.2.0-alpha2
Labels
Amélioration, nouvelle fonctionnalité APIs authentification base de données bug
Ca ne fonctionne pas code généré compilo css divers documentation doublon
Ce ticket est un doublon ergonomie espace privé filtres et balises formulaires Inscription installation invalide
Ticket invalide javascript langues LDAP plugin PostgreSQL refusé
Ignoré, c'est comme Ca... sécurité traduction
Apply labels
Clear labels
accessibilité
amélioration
Amélioration, nouvelle fonctionnalité APIs authentification base de données bug
Ca ne fonctionne pas code généré compilo css divers documentation doublon
Ce ticket est un doublon ergonomie espace privé filtres et balises formulaires Inscription installation invalide
Ticket invalide javascript langues LDAP plugin PostgreSQL refusé
Ignoré, c'est comme Ca... sécurité traduction
No Label
accessibilité
amélioration
APIs
authentification
base de données
bug
code généré
compilo
css
divers
documentation
doublon
ergonomie
espace privé
filtres et balises
formulaires
Inscription
installation
invalide
javascript
langues
LDAP
plugin
PostgreSQL
refusé
sécurité
traduction
Milestone
Set milestone
Clear milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
Assign users
Clear assignees
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.
No due date set.
Dependencies
This issue currently doesn't have any dependencies.
Reference in new issue
There is no content yet.
Delete Branch '%!s(MISSING)'
Deleting a branch is permanent. It CANNOT be undone. Continue?
No
Yes
Il me semble qu'il manque une vérification dans https://core.spip.net/projects/spip/repository/entry/spip/prive/formulaires/editer_article.php#L157 ?
Puisque l'on test l'autorisation creerarticledans c'est que l'on est bien dans la cas d'une création. Donc blinder avec !is_numeric($id_article) ?
auquel cas la ligne 157 deviendrait
Exemple : un site où les internautes soumettent des projets (des articles en l'occurrence). Le dépôt des projets est soumis à une date limite.
Après cette date, il n'est plus possible de créer des nouveaux projets, mais les déposants doivent pouvoir encore modifier leur projet.
Sur le principe ça me semble logique, mais il faudrait vérifier que cela ne va pas générer des effets de bord. Un truc que je ne comprends pas, c'est quand tu dis :
Tu veux dire que tu as surchargé l'autorisation en question ? Dans quel cas tombes tu sur un bug ?
La ligne https://core.spip.net/projects/spip/repository/entry/spip/prive/formulaires/editer_article.php#L157, vient de
https://core.spip.net/issues/2508.
L'avantage (?) de https://core.spip.net/projects/spip/repository/revisions/19075, c'est que ça gère aussi bien les cas de création et de modification d'un article dans une rubrique interdite.
J'ai donc testé mon patch avec le cas d'un admin restreint et il n'y a pas d'effet de bord : ceci grâce à autoriser_article_modifier().
Il est donc question ici de compléter/corriger cette demande : il doit être possible de voir et de modifier, même si il est interdit de créer.
Le bug que j'ai trouvé :
C'est le cas qui se présente avec le plugin LIM
1- un article ou des articles ont été créés dans une rubrique;
2- puis le webmestre décide plus tard d'interdire la création de nouveaux articles dans cette même rubrique, ceci grâce à une fonction du plugin LIM;
3- Mais si il n'est plus possible de créer un article dans cette rubrique, LIM gère le cas où l'auteur veut les modifier ses articles présents dans cette rubrique.
Donc le bug soulevé vient du fait que le plugin LIM surcharge l'autorisation autoriser_rubrique_publierdans(). Plus exactement, il ajoute une condition.
voir http://zone.spip.org/trac/spip-zone/changeset/95014/plugins/lim/trunk/lim_autorisations.php.
Je précise que cette fonctionnalité du plugin LIM pose un problème seulement avec l'objet Article. Pas avec les autres objets éditoriaux.
Voilà. J'espère n'avoir rien oublié.
cette ligne sert à verifier qu'on essaye pas de déplacer l'article dans une rubrique où on aurait pas le droit d'ecrire (ie si on est par exemple pas admin)
Ok merci pour l'info.
On peut fermer ce ticket du coup.
Et hop :)
Statut changé à Fermé