[agenda ↪ autorisation-instituer-evenement] Changer le statut d'un événement demande de pouvoir (...)

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

Détails : Changer le statut d'un événement demande de pouvoir instituer l'article associé. · a1c7d13182 - agenda - SPIP on GIT