spip-contrib-extensions/agenda | 5 commits
Par b_b, le 14 mars 2022 à 11h44min :
Bugfix : permettre à un admin restreint de créer un événement lié à un article de son secteur
Fix #47
Modifié
agenda_autoriser.php
==============================
Par Glop, le 7 mars 2022 à 17h49min :
Instituer un événement demande de pouvoir instituer l’article associé avec le même statut.
Par défaut, l’autorisation autoriser('instituer', 'evenement', …)
appelle autoriser('modifier', 'evenement', …), qui à son tour
appelle autoriser('modifier', 'article', …) pour l’article associé
à l’événement en question, afin de vérifier que l’on est bien autorisé·e
à modifier cet article.
Cependant, lorsque l’on cherche à instituer un événement, ce n’est
pas autoriser('modifier', 'article', …) qu’il faut vérifier, mais
autoriser('instituer', 'article', …), avec le statut à modifier
dans les $options.
C’est déjà ce que fait evenement_instituer() (voir lignes 392 et 393
de action/editer_evenement.php), mais ce n’est par contre pas pris
en compte par autoriser_evenement_instituer_dist().
Par conséquent, si on a le droit d’éditer l’article lié à l’événement
(mais pas de changer le statut de cet article), le formulaire
instituer_objet et la puce_statut affichent la possibilité de
changer le statut de l’événement. Si l’on clique dessus, cela est
heureusement refusé par l’action editer_evenement, mais tant qu’à
faire, autant éviter que l’option ne soit présentée.
Ce patch rajoute donc un appel à autoriser('instituer', 'article', …)
dans autoriser_evenement_instituer_dist(), en plus de la vérification
de autoriser('modifier', 'evenement', …). C’est un peu ceinture et
bretelles, mais ça fait le boulot 
Modifié
agenda_autoriser.php
==============================
Par Glop, le 7 mars 2022 à 21h57min :
Utiliser l’autorisation adaptée dans ‹ evenement_instituer() ›.
Plutôt que de reposer sur autoriser('instituer', 'article', …), la
fonction evenement_instituer() doit faire appel à l’autorisation
canonique pour instituer un événement :
autoriser('instituer', 'evenement', …).
Hormis en cas de surcharge des autorisations, cela devrait normalement
être équivalent :
- l’appel à
autoriser('instituer', 'article', $id_parent, …)
est désormais effectué parautoriser_evenement_instituer_dist()
(depuis d10a325587) ; - la condition
$sa=='publie' or $s!=='publie'est aussi vérifiée
parautoriser_evenement_instituer_dist().
Merci à RastaPopoulos pour
la suggestion !
Modifié
action/editer_evenement.php
Détails : Utiliser l'autorisation adaptée dans 'evenement_instituer()'. · 2090f942db - agenda - SPIP on GIT
==============================
Par Cerdic, le 19 avril 2022 à 17h45min :
homogeneiser le traitement des options : on peut fournir l’id_article dans id_article ou id_parent sur toutes les autorisations
Modifié
agenda_autoriser.php
==============================
Par Maïeul Rouquette, le 10 février 2022 à 17h11min :
Fix #11
Lorsque l’on soumet une modif d’un évènement via crayons
vérifier s’il y a ou non des répetitions;
le cas échéant, demander si l’on modifie aussi les répetitions.
Ajouté
controleurs/evenement.php
Modifié
agenda_pipelines.php
paquet.xml