[spip-dev] [SPIP Zone] [Autorité] Problème de création d'article depuis l'espace public

Salut Bruno,
Salut YannX,

(Comme conseillé par b_b, je bascule sur spip-dev)

merci pour vos réponses...

Hop mignon,

Salut,

j'ai mis en place un formulaire pour écrire un article depuis l'espace
en étant identifié comme visiteur.
Mais, depuis la mise à jour en 3.0.17, ça ne fonctionne plus : une fois
identifié, le visiteur a bien accès au formulaire de rédaction mais,
lorsqu'il le valide, rien ne se passe. Plus exactement, l'appel ajax à
bien lieu (aria-busy passe à true), mais l'article n'est pas créé.

Après plusieurs heures de recherche pour cerner le périmètre de mon
problème, il semble que celui-ci apparaisse à la révision 21518 dans
laquelle cette modif
http://core.spip.org/projects/spip/repository/revisions/21490 est intégrée.
J'ai donc mis à jour mon plugin autorité, mais rien n'y fait.
Et dès que je repasse à la révision 21515, le problème disparait.

Alors, en cernant "un peu" plus je pense que ça vient de cette modification :

http://core.spip.org/projects/spip/repository/revisions/21498

Peux tu nous le confirmer ?

ps : ce mail aurait plus sa place sur la liste spip-dev vu que le bug semble venir du core.

Bon, j'étais sur la branche stable mais installée via SV . Donc mes tests de révisions ne servaient pas à grand chose (je ne maitrise pas encore toutes les subtilités de SVN)...

Du coup, j'ai réinstallé le site en question sur la branche SVN et c'est à la révision 21450 que le problème apparait ( http://core.spip.org/projects/spip/repository/revisions/21450 ).

J'ai essayé avec Autorité 10.0.1 (à jour r85236) et avec la version 0.10.0, le résultat est le même...

Voilà pour le nouveau périmètre du jour :slight_smile: (et les qqs heures de tests!)

             jean marie

Hop,

Du coup, j'ai réinstallé le site en question sur la branche SVN et c'est
à la révision 21450 que le problème apparait (
http://core.spip.org/projects/spip/repository/revisions/21450 ).

J'ai essayé avec Autorité 10.0.1 (à jour r85236) et avec la version
0.10.0, le résultat est le même...

Cool que tu aies trouvé la commit fautif :slight_smile:

Comme tu peux le voir dans le log, il y a un ticket lié qui indique ceci :

On "devait" donc avoir accès au privé pour créer un objet mais on permet*tait* à une personne non loguée de créer un article dans une rubrique, cela ne me semble pas très logique.

On a donc corrigé cette incohérence dans l'API autoriser.

Maintenant je vois que tu parles aussi (je n'en avais pas vu trace dans le texte de tes mails précédents) du plugin Autorité. Du coup, ça veut dire que cela fonctionnait avant car tu modifiais une autorisation à l'aide du plugin Autorité ? Si oui, laquelle (quelle option de config) ? Si c'est bien ça, il faut certainement adapter le plugin Autorité à ce nouveau comportement du core.

Il n'y a pourtant pas de faute d'orthographe dans ce commit.

Ce serait pas plutôt le précédent
http://core.spip.org/projects/spip/repository/revisions/21449
?
JLuc

Hop,

Du coup, j'ai réinstallé le site en question sur la branche SVN et c'est
à la révision 21450 que le problème apparait (
http://core.spip.org/projects/spip/repository/revisions/21450 ).

J'ai essayé avec Autorité 10.0.1 (à jour r85236) et avec la version
0.10.0, le résultat est le même...

Cool que tu aies trouvé la commit fautif :slight_smile:

AAAAHHHHHH !!!!!! (ça fait du bien après tous ces "mettre à jour à la révision XXX") :slight_smile:

Comme tu peux le voir dans le log, il y a un ticket lié qui indique ceci :

On "devait" donc avoir accès au privé pour créer un objet mais on permet*tait* à une personne non loguée de créer un article dans une rubrique, cela ne me semble pas très logique.

http://core.spip.org/issues/3175

On a donc corrigé cette incohérence dans l'API autoriser.

Ok...

Maintenant je vois que tu parles aussi (je n'en avais pas vu trace dans le texte de tes mails précédents) du plugin Autorité. Du coup, ça veut dire que cela fonctionnait avant car tu modifiais une autorisation à l'aide du plugin Autorité ? Si oui, laquelle (quelle option de config) ? Si c'est bien ça, il faut certainement adapter le plugin Autorité à ce nouveau comportement du core.

Voilà la config de mon Autorité : http://i2.minus.com/izUWLL7OaO3WB.jpg

             jean marie

Hop,

AAAAHHHHHH !!!!!! (ça fait du bien après tous ces "mettre à jour à la
révision XXX") :slight_smile:

Comme tu peux le voir dans le log, il y a un ticket lié qui indique
ceci :

On "devait" donc avoir accès au privé pour créer un objet mais on
permet*tait* à une personne non loguée de créer un article dans une
rubrique, cela ne me semble pas très logique.

incohérence dans l'api autoriser (#3175) · Issues · spip / spip · GitLab

On a donc corrigé cette incohérence dans l'API autoriser.

Ok...

Alors, voilà le problème :

Avant la modif dans le core, la fonction autoriser_rubrique_creerarticledans renvoyait true pour n'importe qui, et donc aussi pour les visiteurs. Maintenant ce que celle-ci est corrigée, on a un problème pour permettre au visiteurs de publier un article à l'aide du plugin Autorité. En effet, celui-ci ne surcharge que la fonction autoriser_rubrique_publierdans et du coup ça bloque sur autoriser_rubrique_creerarticledans.

La solution temporaire est de surcharger autoriser_rubrique_creerarticledans dans mes_options.php pour la rediriger sur autoriser_rubrique_publierdans comme ceci :

function autoriser_rubrique_creerarticledans($faire, $type, $id, $qui, $opt) {
  return autoriser_rubrique_publierdans($faire, $type, $id, $qui, $opt);
}

Testé et approuvé.

Maintenant, il faut voir comment patcher le plugin autorité pour qu'il fasse pareil. Peut-être qu'un simple ajout du patch précédent avant le else à ce niveau dans autorité suffirait ?

D'autres avis ?

Hop,