我相当确定这之前是有效的。
预期行为
群组所有者可以通过“添加成员”弹窗将成员添加到群组中。
实际行为
群组所有者可以看到“添加成员”弹窗,但在尝试提交时,会收到 403 错误(禁止访问)。
该问题在两个独立的网站上均被观察到。
我相当确定这之前是有效的。
预期行为
群组所有者可以通过“添加成员”弹窗将成员添加到群组中。
实际行为
群组所有者可以看到“添加成员”弹窗,但在尝试提交时,会收到 403 错误(禁止访问)。
该问题在两个独立的网站上均被观察到。
它仍然在 2.7.0.beta9 上运行( 4a2912233c )
刚从 GitHub 拉取了最新代码并重新测试。确认问题依然存在。复现步骤如下:
Allow users to leave the group freely=True(允许用户自由退出群组),Allow users to send membership requests to group owners=True(允许用户向群组所有者发送加入请求),Who can see this group?=Everyone(谁可以看到此群组?=所有人),Who can see this group's members?=Everyone(谁可以看到此群组的成员?=所有人),Who can @mention this group?=Only moderators and admins(谁可以@提及此群组?=仅版主和管理员),Who can message this group?=Only moderators and admins(谁可以向此群组发送消息?=仅版主和管理员)。我假设用户是 TL2 或更高?
我已经查明了问题的根源。
@Benjamin_D 说对了。这是一个信任级别(TL)的问题。
站点设置中有一个 min_trust_level_to_allow_invite,它被设置为了 TL2,但群组所有者的信任级别却是 TL1。
群组所有者是否应该被允许邀请用户加入群组,即使他们不满足信任级别要求?这似乎有些令人困惑。
你说得对,我想他应该可以?或者,如果他不满足信任级别(TL)标准,也许他不应该成为所有者?
这样也有道理。
或者,也可以为此添加一个更具体的错误提示。
例如,不要抛出带有(英文)消息 You are not permitted to view the requested resource. 的 InvalidAccess 错误。
而是创建一个 InsufficientTrustLevel 错误(也许作为 InvalidAccess 的子类),并附带(英文)消息:You do not have the required trust level to view the requested resource。这样管理员至少能知道这是信任等级问题,而不是程序错误。
关于这些内容在代码库中的定义位置,请注意以下几点:
如果这看起来是可行的方案,我可以为此提交一个 PR。
虽然我同意这里需要更清晰的错误提示,但我认为我们实际上出现了倒退。
群组所有者的职责是管理群组成员。如果他们无法邀请或添加用户到群组,那么这个功能就只实现了一半……
@dan,你能把这个加到你的待办事项中吗?
大家调查得很棒!
我可能说错了,但我认为这种情况是我们改进邀请系统的工作所导致的。我们正在对邀请进行标准化,使它们都使用相同的邀请系统,并将处理现有用户的功能分离出来。最近,我们进行了调整,现在通过主题菜单中的分享按钮通知现有用户有关主题的信息,这与邀请新用户加入站点并参与主题讨论是分开的。
我们希望对群组也采取同样的做法——这已经在我们的待办事项清单上,但现在看来变得更加紧迫,因为如果这意味着在 TL 不足无法邀请新用户加入站点时,就无法将任何人添加到群组中。
该限制在邀请电子邮件加入群组时是有意义的。然而,在邀请现有用户时,这一限制则不合理。我已在以下链接中修复了此问题:
这将暂时解决该问题,但我们计划对该区域进行全面重构。
此主题已在 2 天后自动关闭,不再允许新回复。