[agenda ↪ autorisation-instituer-evenement] 5 commits

spip-contrib-extensions/agenda | 5 commits

Par jeanmarie, le 22 mai 2021 à 22h19min :

Fix #31 : classe .btn_secondaire pour rendre le bouton moins prégnant que le bouton de validation

Modifié
formulaires/editer_evenement.html

Détails : Fix #31 : classe .btn_secondaire pour rendre le bouton moins prégnant que le bouton de validation · c8e5a37009 - agenda - SPIP on GIT

==============================
Par Cerdic, le 19 avril 2022 à 16h39min :

Fix #50 + charset du formulaire (Glop)

Modifié
formulaires/configurer_agenda.html

Détails : Fix #50 + charset du formulaire (Glop) · 53f03380ba - agenda - SPIP on GIT

==============================
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

Détails : Bugfix : permettre à un admin restreint de créer un événement lié à un article de son secteur · c73701592c - agenda - SPIP on GIT

==============================
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 :slight_smile:

Modifié
agenda_autoriser.php

Détails : Instituer un événement demande de pouvoir instituer l'article associé avec le même statut. · 047f9ebb81 - agenda - SPIP on GIT

==============================
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é par autoriser_evenement_instituer_dist()
    (depuis d10a325587) ;
  • la condition $sa=='publie' or $s!=='publie' est aussi vérifiée
    par autoriser_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