Re: api objet_modifier

RastaPopoulos <[email protected]>
Newsgroups gmane.comp.web.spip.devel
Message-ID <[email protected]>
Le 24/07/2020 à 14:23, tofulm a écrit :
> J'ai loupé une étape ?

objet_inserer() n'appelle aucune autorisation

objet_modifier() n'appelle aucune autorisation

objet_instituer() appelle une autorisation (parmi trois : publierdans, instituer, modifier)

=> incohérence (et l'incohérence, c'est mal)

En ce qui me concerne, j'ai toujours dit qu'il faut absolument avoir une API centrale (CRUD quoi les opérations vraiment de base), qui n'appelle AUCUNE autorisation. Sinon il est souvent impossible de les utiliser dans des scripts en masse ou même dans des plugins avec les pipelines etc.

Pour les opérations de base (insérer, modifier), il me semble que autoriser_exception() est un non-sens, une erreur d'architecture. Car il est structurellement impossible de connaître *par avance* la liste des autorisations qui vont s'exécuter ! Avec les pipelines, les plugins qui s'insèrent dedans, de nombreuses opérations peuvent se dérouler en cascade : objet_modifier() sur tel objet va possiblement en modifier 3 autres en cascade. Et quand on veut que ça se fasse forcément, qu'on ne connait pas qui fait le hit PHP, impossible de connaitre les autorisations à mettre à "false". C'est la structure même des fonctions avec chacune leur pipeline qui rend cela impossible.

Je pense toujours qu'on devrait tenter de retirer ses quelques autorisations restantes. Et surtout ne pas en rajouter dans les deux qui n'en ont pas.
Celles-ci devraient être :
- dans les squelettes pour autoriser l'affichage ou pas d'une action de contrôle (formulaire CVT, bouton d'action, etc)
- dans les CVT et les actions appelables par bouton (qui sont les vraies interfaces humaines par le HTML)
- dans les actions appelées dans des API au sens "API distante" (REST etc) : c'est une autre forme d'interface, différente du HTML
- mais pas dans les fonctions de base, qui ne sont pas des interfaces (humaines HTML ou pas)

-- 
RastaPopoulos
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.