RGJ
(Richard - Communiteq)
1
The following is happening:
Some users are getting the TL2 welcome notification (“we promoted you up a trust level”) on every login.
This happens under the following circumstances:
- SSO login is enabled where Discourse is the SSO client
- “Sync User Data” is enabled in WP-Discourse so it issues a
sync_sso call every time the user logs into Wordpress
sync_sso is setting a group that has a grant_trust_level which is lower than the current trust level of the user
This causes the trust levels for the user to be recalculated from the ground up and the welcome message to be sent every time.
6 个赞
nat
(Natalie T)
9
你好,
感谢分享此 bug!我尝试在本地重现此 bug,但未能成功,我的设置如下:
(Wordpress)
- 设置 Wordpress 用户“Steaky”,邮箱为 steaky@cat.com
- 添加
wpdc_custom_sso_params 以将 cats 组设置为所有使用 $params['groups'] = 'cats'; 登录的用户
(Discourse)
- 创建用户“Steaky”,邮箱为 steaky@cat.com
- 将 Steaky 设置为
trust_level_3(非锁定)
- 创建组“cats”,并将“自动授予成员的信任级别”设置为“cats”的 2
Wordpress 和 Discourse 已连接
并且
同步了用户数据。
(Discourse)
- 登录 Steaky,重定向到 Wordpress 并登录,然后重定向回 Discourse
- (确认“cats”已设置为 Steaky)
- Steaky 未看到欢迎消息
^ 使用 SiteSetting.discourse_connect_overrides_groups 重复以上步骤,结果相同。
我怀疑你的设置可能更复杂。如果你能分享更多关于受影响用户设置的详细信息,那就太好了:
- 你还启用了哪些其他“Discourse Connect”站点设置?
- 受影响的用户是否单独加入了可能授予他们某些信任级别的组?
- 受影响用户的信任级别是否被锁定?他们属于哪种类型的组?
- 任何其他有用的信息
谢谢!
4 个赞
RGJ
(Richard - Communiteq)
10
这个 bug 已经存在一年多了,在此期间客户已经不再使用 Discourse,因此我无法完全复现。不过,我总是会做详细的笔记,所以我甚至还保留了当时的 SSO payload 记录。但我无法检查任何其他设置和/或在该确切实例上进行复现。
回到我的笔记。发生的情况与你现在做的略有不同。SSO 传递了一个空的 groups 字段(仅仅是 groups=)。但相关的用户属于一个 SSO 提供商未知的另一个组,该组强制其成员提升到 TL2。
此外,据我回忆,TL2 和 TL3 的欢迎消息行为不同,所以如果你尝试复现此问题,可能需要使用 TL2 而不是 TL3。
因此,要复现,我认为你需要执行以下操作:(请注意,我引入了第二个组)
(WordPress)
- 使用电子邮件 steaky@cat.com 设置 WordPress 用户“Steaky”
- 添加
wpdc_custom_sso_params 以设置所有登录用户的 dogs 组,并设置 $params['groups'] = 'dogs';
(Discourse)
- 使用电子邮件 steaky@cat.com 创建用户“Steaky”
- 让 Steaky 合法地成为
trust_level_1(非锁定)
- 创建“cats”和“dogs”组,并将“自动授予成员的信任级别”设置为“cats”的 2 级
- 让 Steaky 成为
cats 组的成员
2 个赞
nat
(Natalie T)
12
我上次回复后就暂停了对那个 bug 的探索,但我已经阅读了你的笔记,并且非常感激!你能有如此详尽的记录真是太不可思议了。它仍然在我待办的列表上,我很快就会重新开始处理它,所以感谢你的跟进。
3 个赞