[spip-cli-custom ↪ pr-spip-cli-plugins-telecharger] fix(plugins:svp:telecharger) : sélection du plugin, (…)

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.

  1. Le plugin n’était jamais trouvé dans le dépôt.
    La condition SQL comparait UPPER(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ésormais UPPER(pl.prefixe) à UPPER("prefixe").

  2. 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 », et action/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.

  3. 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é par do_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->err lorsque l’action a échoué.

Testé avec SPIP 4.4.

Co-Authored-By: Claude Opus 5 noreply@anthropic.com

Modifié
src/Command/PluginsSvpTelecharger.php

Détails : fix(plugins:svp:telecharger): sélection du plugin, autorisation et remontée des erreurs (842279e3) · Validations · Gilles Vincent / spip-cli-custom · GitLab