我已阅读该主题 https://meta.discourse.org/t/group-trust-level/314024,其中提到:
以及这个较旧的主题 Should losing group membership unlock trust level?
其中描述的情况在很大程度上符合我的经验:
但是,我在自己的 Discourse 测试实例中发现的是这个……
在所有信任级别设置都为默认值的情况下,我有一个 TL1 帐户(U)和一个名为 tl3 的组,该组授予 Trust_Level_3。
- 起始条件
- 信任级别:
1: basic userUnlocked - 自动组:
trust_level_0,trust_level_1 - 自定义组: None
- 信任级别:
- 将 U 添加到 tl3
- 信任级别:
3: RegularUnlocked - 自动组:
trust_level_0,trust_level_1,trust_level_2,trust_level_3 - 自定义组: tl3
- 信任级别:
- 将 U 从 tl3 中移除
- 信任级别:
2: MemberUnlocked - 自动组:
trust_level_0,trust_level_1,trust_level_2,trust_level_3 - 自定义组: None
- 注意: 尽管信任级别为 2,但用户仍属于自动组
trust_level_3。根据理解,用户在未锁定信任级别的情况下不能降级到 TL1,因此预期的结果是用户应立即失去trust_level_2自动组的成员资格。
- 信任级别:
- 锁定 U 的信任级别
- 信任级别:
2: MemberLocked - 自动组:
trust_level_0,trust_level_1,trust_level_2,trust_level_3 - 自定义组: None
- 注意: 尽管信任级别为
2: Member,但用户仍属于自动组trust_level_3。
- 信任级别:
- 解锁 U 的信任级别
- 信任级别:
1: BasicUnlocked - 自动组:
trust_level_0,trust_level_1 - 自定义组: None
- 信任级别:
因此,在取消用户加入具有信任级别影响的组时,信任级别会自动即时重新计算,但自动组的成员资格不会重新计算,除非用户的信任级别发生解锁事件。
我的假设是,自动组的成员资格是系统范围内为所有用户每天计算一次,届时会自动组的成员资格将得到纠正。但感觉上,自动组的成员资格应该在用户从具有信任级别影响的组中移除时触发,或者在信任级别发生任何更改时立即触发,而不仅仅是在信任级别增加时触发。
因此,后端 API 调用,
POST {{site}}/admin/users/{{userId}}/groups
会更新自动组的成员资格,但
DELETE {{site}}/admin/users/{{usedId}}/groups/{{groupId}}
不会,这感觉像是一个错误,特别是如果您使用自动信任级别组进行访问控制。
而且,为了完整起见,显然调用,
PUT {{site}}/admin/users/{{userId}}/trust_level
当在管理界面中手动更改用户信任级别时,会立即按预期重新计算自动组的成员资格。

