spip-contrib-extensions/agenda
Par Glop, le 7 mars 2022 à 16h49min :
Changer le statut d’un événement demande de pouvoir instituer l’article associé.
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 à modifer
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.
Modifié
agenda_autoriser.php