Le sujet épinglé par défaut n'apparaît pas en raison du plugin de politique

J’ai remarqué quelque chose d’étrange concernant le sujet de bienvenue par défaut (épinglé) dans « Sans catégorie » : il n’apparaît pas pour les requêtes anonymes.

À ma connaissance, aucune restriction ne s’applique à sa lecture : l’inscription est ouverte, il s’agit de la catégorie « Sans catégorie » par défaut (avec les fonctionnalités de sécurité spéciales) et aucun paramètre ne limite l’affichage du contenu.

La vue JSON affiche la version cuite du message, mais la version HTML est vide :

Ce comportement ne se produit que sur ce forum, qui est le maître d’une configuration multi-sites.

https://ps.zoethical.org/t/welcome-to-p-s/8/1.json

Une idée ?

Il y a une réponse contenant une policy qui pose problème et qui manque de boutons… Cela pourrait-il être lié ?

Pour être exhaustif, voici à quoi cela ressemble lorsque je suis connecté :

It’s visible via Safe mode, so it’s a customization or plugin:

@hellekin J’ai exactement le même problème. Si vous supprimez le message de politique ou désactivez le plugin dans les paramètres, le sujet réapparaît.
Il semble qu’il y ait un bug et que les utilisateurs non enregistrés ne puissent pas voir le sujet lorsqu’une politique est utilisée dans un message.

Quelqu’un peut-il nous aider ?

J’ai fini par identifier le coupable : discourse-policy, comme l’avait suggéré @Vraag. Contrairement à ce que dit @Vraag, le plugin affecte le sujet qui « disparaît » même s’il est désactivé : le simple fait qu’il figure dans la liste des plugins suffit à ce que le sujet « disparaisse » lorsque l’utilisateur n’est pas connecté.

La réponse qui utilise le plugin Policy est la première : Exploring community-based social media - #2 by system - Share - petites singularités
Le Markdown de ce message :

[policy group=trust_level_1 reminder=daily]
Nous n'utilisons pas de cookies tiers.
[/policy]

Voici le journal d’erreur :

TypeError: p is null
Url: https://ps.zoethical.org/assets/plugins/discourse-policy-60b8413b741df408ff16f757f644f9de7cb64099d24c33dc3d85ef735478d72a.js
Line: 1
Column: 3373
Window Location: https://ps.zoethical.org/t/welcome-to-p-s/8

Voici la trace d’appel :

r@https://ps.zoethical.org/assets/plugins/discourse-policy-60b8413b741df408ff16f757f644f9de7cb64099d24c33dc3d85ef735478d72a.js:1:3373
m@https://ps.zoethical.org/assets/plugins/discourse-policy-60b8413b741df408ff16f757f644f9de7cb64099d24c33dc3d85ef735478d72a.js:1:5934
value/<@https://ps.zoethical.org/assets/application-e5979c62e7a903663f877b29059ee0b4707ac3d11c783460ad7d0920ed92e017.js:73:2648
value@https://ps.zoethical.org/assets/application-e5979c62e7a903663f877b29059ee0b4707ac3d11c783460ad7d0920ed92e017.js:73:2619
r@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:10297
r@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:10576
r@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:10576
r@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:10576
r@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:10576
r@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:10576
r@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:10576
u@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:12330
r@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:11710
o@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:13433
i@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:13297
r@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:11816
o@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:13433
i@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:13297
r@https://ps.zoethical.org/assets/vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:5:13118
rerenderWidget@https://ps.zoethical.org/assets/application-e5979c62e7a903663f877b29059ee0b4707ac3d11c783460ad7d0920ed92e017.js:33:21229
y</t.invoke@https://ps.zoethical.org/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:16:9727
y</t.flush@https://ps.zoethical.org/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:16:8732
b</t.flush@https://ps.zoethical.org/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:16:10780
H</n._end@https://ps.zoethical.org/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:16:15438
H</n.end@https://ps.zoethical.org/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:16:12105
H</n._run@https://ps.zoethical.org/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:16:15973
H</n._join@https://ps.zoethical.org/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:16:15758
H</n.join@https://ps.zoethical.org/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:16:12813
c@https://ps.zoethical.org/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:12:3338
R/<@https://ps.zoethical.org/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:12:4903
h@https://ps.zoethical.org/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:2:9935
o/</f<@https://ps.zoethical.org/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:2:10240

Notez que plugin.rb charge un grand nombre de dépendances avant même d’exécuter quoi que ce soit. L’erreur provient peut-être de l’une de ces dépendances qui s’attend à ce que l’utilisateur soit connecté.

Salut
Oui, j’ai oublié de te dire que tu dois modifier le post après avoir désactivé le plugin, sinon il continuera à l’affecter.

Modifier le post comme ça ? … Enlever le balisage de la politique ?

Non, désactivez le plugin, modifiez le message contenant le plugin (ajoutez par exemple une lettre aléatoire au début du message), enregistrez-le et les utilisateurs non connectés pourront voir le message. Le balisage s’affichera sous la forme [policy][/policy] sans aucun effet. Je me demande pourquoi désactiver simplement le plugin ne suffit pas. Vous devez modifier le message après cela, sinon il continuera d’avoir un effet.

En effet, modifier le message même lorsque le plugin est désactivé, y compris en changeant le contenu à l’intérieur des balises [policy], suffit à restaurer l’affichage du sujet.

Il semble donc qu’il s’agisse d’un bug dans le plugin discourse-policy, @sam ?

Étrangement, la réactivation du plugin rétablit la situation normale. Je ne suis pas sûr de quoi faire avec cela.

Je suppose que ce sujet servira de référence pour l’avenir, alors le voici : si un sujet « disparaît » de la vue anonyme et que vous avez un message utilisant le plugin discourse-policy

  1. Désactivez le plugin — si cela ne fonctionne pas : retirez-le du fichier de configuration YAML du conteneur et reconstruisez.
  2. Modifiez le message en utilisant la balise [policy] afin qu’il soit réexécuté et désactivé (peut-être que « reconstruire le HTML » suffit ?).
  3. Réactivez le plugin.

Tadaa ! De la magie s’est produite.

Que voulez-vous dire par « il s’est passé un peu de magie » ?

J’ai fait comme vous l’avez dit, et j’ai obtenu ceci :

    [policy group=testgroup reminder=daily]
Test
    [/policy]

Ce qui ne résout pas le problème. Au lieu d’une correction, c’est… simplement ne pas utiliser le plugin.
Si j’édite le message ou reconstruis le HTML, le plugin fonctionnera, mais le sujet disparaîtra à nouveau pour les utilisateurs non enregistrés.

edit

C’est la même chose pour vous, d’après ce que je vois. Dans votre sujet, le deuxième message ressemble à ceci :

[policy group=trust_level_1 reminder=daily]
    Nous n'utilisons pas de cookies tiers.
    [/policy]

Nous n’avons donc toujours pas de « solution ». Sauf si vous appelez solution ne pas utiliser le plugin xD. Vous auriez aussi bien pu supprimer le balisage du deuxième message, même résultat.
Comme ça, vous ne pouvez l’utiliser que dans des catégories privées, de sorte que les utilisateurs non enregistrés ne peuvent pas voir le sujet de toute façon.