fkohrt
1
你好!
在从 2.4.0.beta1 升级到 2.4.0.beta2 再到 2.4.0.beta4 的过程中(不确定具体是哪一次升级),新用户注册弹窗不再显示。
我们使用 OpenID Connect 插件进行用户认证。登录是必需的,本地登录已禁用,但允许新用户注册。如果禁用登录要求或启用本地登录,问题会“解决”,用户可以重新注册。但我们需要保持本地登录禁用,并且必须要求登录。
OIDC 日志显示正常,其中包含新用户的凭据信息(显示为 Fetched userinfo response),但注册弹窗仍未出现。我尝试过全新安装并恢复备份,但问题依然存在。如果不恢复备份,注册弹窗可以正常显示,这说明备份中某些内容导致了该问题出现:confused
我们当前的 Discourse 版本是 2.4.0.beta6,该问题在此版本中同样存在。
david
(David Taylor)
2
您的网站上是否安装了任何主题组件?在安全模式下问题是否仍然存在?
fkohrt
3
太棒了,你说得对!从主题中移除 知识库 组件后,弹窗又出现了!我显然是在某次升级之间安装了该组件。
奇怪的是,只有在恢复备份后才会出现这种情况,全新安装即使启用了该组件也不会出现此问题。我直接禁用它吧,反正我们也没在使用。
感谢你的帮助!
justin
(Justin DiRose)
4
这确实很奇怪。您是否记得在该组件上看到过任何特定的错误,例如在浏览器开发者控制台中?
fkohrt
5
确实,在 https://<HOST>/logs 下,我读到以下内容:Uncaught TypeError: Cannot read property 'knowledge-base' of undefined
此外,还出现了 8 次 TypeError: E.idMap(...) is undefined,但未提及知识库组件。其堆栈跟踪如下(URL:https://<HOST>/assets/application-301651b1c7400a000974a9cecafd44ad3304cf647cf17bcfa7af68e9ed1ac4b7.js,行:9,列:20924,窗口位置:https://<HOST>/login):
findById@https://<HOST>/assets/application-301651b1c7400a000974a9cecafd44ad3304cf647cf17bcfa7af68e9ed1ac4b7.js:9:20924
findByIds/<@https://<HOST>/assets/application-301651b1c7400a000974a9cecafd44ad3304cf647cf17bcfa7af68e9ed1ac4b7.js:9:21063
findByIds@https://<HOST>/assets/application-301651b1c7400a000974a9cecafd44ad3304cf647cf17bcfa7af68e9ed1ac4b7.js:9:21035
initialize/</<@https://<HOST>/theme-javascripts/ce296772003fb6162b99b62bf564066966940cc8.js?__ws=<HOST>:103:48
value/<@https://<HOST>/assets/application-301651b1c7400a000974a9cecafd44ad3304cf647cf17bcfa7af68e9ed1ac4b7.js:14:5447
C@https://<HOST>/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:6:19799
trigger@https://<HOST>/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:9:20668
s/</<@https://<HOST>/assets/application-301651b1c7400a000974a9cecafd44ad3304cf647cf17bcfa7af68e9ed1ac4b7.js:13:31963
y</t.invoke@https://<HOST>/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:16:9739
y</t.flush@https://<HOST>/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:16:8732
b</t.flush@https://<HOST>/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:16:10782
H</n._end@https://<HOST>/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:16:15440
H</n.end@https://<HOST>/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:16:12110
H</n._runExpiredTimers@https://<HOST>/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:16:16800
justin
(Justin DiRose)
6
我对可能导致这个问题的原因有一些想法。
不过我很好奇——在它启用期间,你在 kb categories 主题设置中列出过任何分类吗?我注意到代码中有一个情况,如果没有选择任何分类,可能会导致问题。
编辑:我已经提交了一个修复,我认为这可能解决问题。
fkohrt
7
确实,我当时没有列出任何分类。但即使选择了分类,弹窗仍然没有显示。
这可能有关联,也可能完全是另一回事:当显示分类时,default to kb view 设置不起作用,我必须反复点击 KB 按钮和 Latest 按钮才能启用知识库视图。
编辑:我更新了组件,现在的表现如下:在分类列表为空时,弹窗会显示出来
。但一旦我选择了一个分类,弹窗就不再显示了。
justin
(Justin DiRose)
8
你在日志中也看到相同的错误吗?
这里发生的情况是,有一个路由被触发,试图在知识库组件加载之前查找它。
fkohrt
9
是的,但它们不再堆叠了,而是在堆栈跟踪的第四行有所不同。其他行看起来如上所示。
initialize/<</@https://<HOST>/theme-javascripts/<VARIES>.js?__ws=<HOST>:103:48
justin
(Justin DiRose)
10
我添加了另一个提交,增加了一些额外的检查,以停止尝试查询未初始化的项目。
fkohrt
11
没有任何区别,TypeError 错误仍在不断出现。
justin
(Justin DiRose)
12
我已在该提交中修复了这些特定的错误消息。不确定这是否能解决模态框问题,但看起来是相关的。
fkohrt
13
我觉得没问题,即使选中了分类,模态框现在也能正常显示了!