Demo en SPIP 5

Juste pour savoir si vous avez le même souci ou si j’utilise mal la version : je n’arrive plus à afficher la démo d’un plugin en SPIP 5.0 : j’ai accès interdit alors que je suis connecté en webmestre. Je clique sur se connecter et je boucle sur la page de refus.

C’est un bug répertorié ? Je fais un ticket ?

C’est quoi que tu appelles « la démo » d’un plugin ? quel plugin en l’occurrence du coup ?

La demo d’un plugin c’est la page demo/yaml par exemple. Et je confirme l’erreur en spip 5 qui n’accepte plus les pages avec un / car le test du webmestre n’est plus fait au bon endroit.

Voilà ce que me dit mon ami :slight_smile:

Le contrôle est pourtant identique dans les deux branches :

str_contains($fond, '/')
&& !(isset($GLOBALS['visiteur_session']) && include_spip('inc/autoriser') && autoriser('webmestre'))

C’est le moment de son exécution qui a changé.

Quand
4.4 en ligne dans ecrire/public.php dans le flux public, la session étant établie
5.0 Spip\Legacy\Http\EventListener\FondResolverListener sur kernel.request, priorité 32

Les deux seules écoutes de kernel.request dans SPIP 5 sont ce résolveur et
LangNegotiationListener (priorité 16) : aucune n’établit la session. autoriser('webmestre') est donc évalué avant qu’il y ait un visiteur, et la dérogation ne peut jamais se déclencher.

Correctif suggéré — déplacer ce contrôle après l’établissement de la session, ou l’évaluer au moment où le fond est réellement servi.

2 « J'aime »

Je confirme, j’avais un onglet ouvert depuis deux semaines pour me rappeler d’ouvrir un ticket à ce sujet, mais d’autres sujets sont passés par là entre temps…

L’accès à spip.php?page=modeles/prout génère l’erreur suivante :

ctPage.php(72): Spip\Afficher\Minipage\AbstractPage->fermeBody()
#1 /home/bb/sites/trunk/ecrire/src/Afficher/Minipage/Admin.php(122): Spip\Afficher\Minipage\AbstractPage->page('...', Array)
#2 /home/bb/sites/trunk/ecrire/src/Legacy/Http/EventListener/FondResolverListener.php(84): Spip\Afficher\Minipage\Admin->page()
#3 /home/bb/sites/trunk/ecrire/src/Legacy/Http/EventListener/FondResolverListener.php(44): Spip\Legacy\Http\EventListener\FondResolverListener->throwForbiddenResponse()
#4 /home/bb/sites/trunk/ecrire/src/Legacy/Http/EventListener/FondResolverListener.php(32): Spip\Legacy\Http\EventListener\FondResolverListener->resolveFond(Object(Symfony\Component\HttpFoundation\Request))
#5 /home/bb/sites/trunk/vendor/symfony/event-dispatcher/EventDispatcher.php(246): Spip\Legacy\Http\EventListener\FondResolverListener->__invoke(Object(Symfony\Component\HttpKernel\Event\RequestEvent), '...', Object(Symfony\Component\EventDispatcher\EventDispatcher))
#6 /home/bb/sites/trunk/vendor/symfony/event-dispatcher/EventDispatcher.php(206): Symfony\Component\EventDispatcher\EventDispatcher::{closure:Symfony\Component\EventDispatcher\EventDispatcher::optimizeListeners():241}(Object(Symfony\Component\HttpKernel\Event\RequestEvent), '...', Object(Symfony\Component\EventDispatcher\EventDispatcher))
#7 /home/bb/sites/trunk/vendor/symfony/event-dispatcher/EventDispatcher.php(56): Symfony\Component\EventDispatcher\EventDispatcher->callListeners(Array, '...', Object(Symfony\Component\HttpKernel\Event\RequestEvent))
#8 /home/bb/sites/trunk/vendor/symfony/http-kernel/HttpKernel.php(162): Symfony\Component\EventDispatcher\EventDispatcher->dispatch(Object(Symfony\Component\HttpKernel\Event\RequestEvent), '...')
#9 /home/bb/sites/trunk/vendor/symfony/http-kernel/HttpKernel.php(79): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1, NULL)
#10 /home/bb/sites/trunk/vendor/spip-league/http-kernel/src/SpipHttpKernel.php(75): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#11 /home/bb/sites/trunk/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php(34): SpipLeague\Component\HttpKernel\SpipHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request))
#12 /home/bb/sites/trunk/vendor/autoload_runtime.php(32): Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run()

Désolé, je n’ai rien demandé à une AmIe :stuck_out_tongue:

2 « J'aime »