Le 08/05/2020 à 18:39, nicod_ a écrit :
Le 07/05/2020 à 20:53, nicod_ a écrit :
Mais sur un autre SPIP 3.2 en particulier, ça passe direct, on peut télécharger quand même les docs, je chercher à comprendre pourquoi...

J'ai compris le problème, il y a effectivement un bug dans certains cas.

Quand on a activé la constante, une requête est lancée pour vérifier si le document est attaché à un objet lui même attaché à une rubrique restreinte : https://git.spip.net/spip-contrib-extensions/acces_restreint/src/tag/v4.0.0/inc/accesrestreint_autoriser.php#L269

Exemple de requête générée :
http://spip.pastebin.fr/62681

Si le document a uniquement un lien vers un article ou une rubrique, ça marche comme prévu : la requête ne renvoie rien et un visiteur non connecté ne voit pas le doc.

Mais si le document a un lien vers un autre objet (un auteur par exemple) dans spip_documents_liens, la requête renvoie bien l'id_document, et l'autorisation est donc donnée, ce qui n'est pas du tout ce qu'on veut.

En fait, cette logique pourrait se discuter...

Si le doc est attaché à un article restreint, mais également à un autre objet qui lui n'est pas restreint, par exemple, que faire ?
Apparemment, tu considères que dans ce cas on le diffuse.
Dans mon cas, j'attache des documents à des auteurs, pour de la traçabilité.

On peut avoir d'autres objets qui dépendent de rubriques, donc potentiellement restreints aussi, mais là, ils peuvent utiliser le pipeline accesrestreint_objets_accessibles_where.

Je pense comprendre le principe, mais simplement, est ce que cette clause zzzd.objet NOT IN ('rubrique','article','breve','forum') pourrait être optionnelle par exemple ?

--
nicod_
_______________________________________________
liste: https://listes.rezo.net/mailman/listinfo/spip-dev
doc: https://www.spip.net/
dev: https://core.spip.net/
irc://irc.freenode.net/spip

Répondre à