我注意到“未分类”类别中默认的欢迎(置顶)主题有些奇怪:匿名请求无法看到它。
据我所知,阅读它没有任何限制:注册是开放的,这是默认的“未分类”类别(带有特殊安全功能),且没有任何设置限制内容查看。
JSON 视图显示了帖子的渲染版本,但 HTML 版本却是空的:
这种行为仅出现在这个多站点配置的主论坛上。
https://ps.zoethical.org/t/welcome-to-p-s/8/1.json
有什么想法吗?
有一条回复包含 policy,它存在 bug 且 缺少按钮……这可能与问题有关吗?
为了完整起见,以下是我登录后的显示效果:
Stephen
(Stephen)
2
It’s visible via Safe mode, so it’s a customization or plugin:
Vraag
3
@hellekin 我遇到了完全相同的问题。如果你删除政策帖子或在设置中禁用该插件,主题就会显示出来。
看起来这是一个漏洞:如果帖子中使用了政策,未注册用户就无法看到该主题。
有人能帮我们吗?
我已经追踪到了罪魁祸首:discourse-policy,正如 @Vraag 所建议的。与 @Vraag 的说法相反,即使禁用了该插件,它也会影响“消失”的主题:只要它出现在插件列表中,未登录时该主题就会“消失”。
使用 Policy 插件的第一个回复是:Exploring community-based social media - #2 by system - Share - petites singularités
该帖子的 Markdown 内容:
[policy group=trust_level_1 reminder=daily]
我们不使用第三方 Cookie。
[/policy]
以下是错误日志:
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
以下是堆栈跟踪:
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
请注意,plugin.rb 在执行任何操作之前就会加载大量依赖项。也许错误源于某个期望有登录用户的依赖项。
Vraag
5
你好
是的,我忘了说,禁用插件后你必须编辑帖子,否则它将继续影响该帖子。
Vraag
7
不,请禁用该插件,编辑包含该插件的帖子(例如在帖子开头添加一个随机字母),保存后,未注册用户即可看到该帖子。标记将显示为 [policy][/policy] 且不会生效。我想知道为什么仅禁用插件还不够。您必须在禁用后编辑帖子,否则它将继续生效。
确实,在插件禁用的情况下编辑帖子,甚至修改 [policy] 标签内的内容,就足以恢复主题视图。
看来这是 discourse-policy 插件的一个 bug,@sam?
奇怪的是,重新启用该插件后,情况就恢复正常了。我不确定该怎么处理这个问题。
我想这个话题可以作为未来的参考,所以在此说明:如果某个话题在匿名视图中“消失”了,而你有一篇帖子使用了 discourse-policy 插件…
- 禁用该插件——如果无效,则从容器的 YAML 配置文件中移除它并重新构建。
- 编辑使用该帖子中的
[policy] 标签,使其重新渲染并禁用(也许“重建 HTML”就足够了?)
- 恢复该插件。
搞定!一些魔法发生了。
Vraag
10
你说的“发生了一些魔法”是什么意思?
我照你说的做了,结果得到了这个:
[policy group=testgroup reminder=daily]
测试
[/policy]
这并没有解决问题。与其说是修复,不如说……这根本就没在使用插件。
如果我编辑帖子或重建 HTML,插件就能正常工作,但非注册用户仍然会看不到该主题。
编辑
从我的观察来看,你那边情况也一样。在你的主题中,第二条帖子显示如下:
[policy group=trust_level_1 reminder=daily]
我们不使用第三方 Cookie。
[/policy]
所以我们仍然没有“解决方案”。除非你把“不使用插件”称为解决方案 xD。你不如直接把第二条帖子中的标记删掉,结果是一样的。
目前的情况是,你只能在私密分类中使用它,这样非注册用户本来也就看不到该主题了。