technova69/spip-cli-custom
Par gilles, le 21 août 2026 à 10h35min :
fix(plugins:svp:telecharger): sélection du plugin, autorisation et remontée des erreurs
Trois corrections dans spip plugins:svp:telecharger, indépendantes mais
toutes nécessaires pour que la commande télécharge réellement un plugin.
-
Le plugin n’était jamais trouvé dans le dépôt.
La condition SQL comparaitUPPER(pl.prefixe)àLOWER("PREFIXE"):
les deux termes ne peuvent jamais être égaux pour un préfixe non vide, la
commande répondait donc systématiquement « Le plugin xxx n’est pas
référencé ». On compare désormaisUPPER(pl.prefixe)àUPPER("prefixe"). -
L’exception d’autorisation n’était pas prise en compte.
autoriser()normalise le type « _plugins » en « plugins »
(autoriser_type()retire l’underscore), puis transmet ce type déjà
normalisé àautoriser_exception(), qui le normalise une seconde fois :
« plugins » ne commençant plus par un underscore, il passe cette fois par
objet_type()et devient « plugin » au singulier.
La vérification portait donc sur la clé « plugin » alors que l’exception
n’était enregistrée que sous « plugins », etaction/teleporter.php
refusait le téléchargement. Les deux formes sont maintenant déclarées :
autoriser_dist()teste d’abord la présence de la clé « plugins » dans
$GLOBALS['autoriser_exception'], puis délègue la vérification effective à
autoriser_exception(), qui, elle, lit la clé « plugin ».
Vérifié sur SPIP 4.4.14 : aucune des deux déclarations prise isolément ne
suffit. -
La commande annonçait une réussite même en cas d’échec.
one_action()renvoie la description de l’action avant son exécution ;
son résultat est placé pardo_action()dans la dernière entrée de
$actionneur->done. On teste désormais ce résultat, et on affiche les
messages empilés dans$actionneur->errlorsque l’action a échoué.
Testé avec SPIP 4.4.
Co-Authored-By: Claude Opus 5 noreply@anthropic.com
Modifié
src/Command/PluginsSvpTelecharger.php