禁用“启用名字”会导致管理员行为异常

我写的代码并没有移除 enable names 设置,[1] 而是对其进行了补充:

  1. 添加一个 full_names_visible_to_groups 设置(其中 adminsmoderators 是强制值)。
  2. Guardian 添加一个 can_see_full_names? 方法,该方法执行 enable_namesfull_names_visible_to_groups 中群组成员资格的“与”运算。
  3. 在服务器暴露/发出完整姓名的所有适当位置使用此新方法。

1 和 2 很简单。3 更复杂,我知道我遇到了一些困难,不知道如何解决,需要获得建议/指导。距离我上次深入研究这个问题已经过去 2 个多月了。(:see_no_evil_monkey:

(如果我没记错的话,display name on posts 等是客户端设置,影响从服务器接收的数据的显示。换句话说,是在服务器发出的任何内容之上的一个限制。)

我相信(1)在 enable_names 为 true 时已得到处理,这可能是几乎所有人想要的,一旦新的按群组设置可用。[2]

我认为我遇到了(2)并已处理——大部分。[3]

我记得还有一些其他情况会泄露全名。[4]

无论如何,我将回顾笔记,并尝试在本周提交 PR,在此过程中找出未解决的问题/遗留问题。


  1. …原因有很多,其中:(a) 我不确定该设置的实际意图(参见我上面早期帖子中的问题),以及 (b) 保留它提供了更安全的增量升级路径。 ↩︎

  2. …如果一个人认为 enable_names = false 意味着“本网站在任何方面都不使用完整姓名”。 ↩︎

  3. 例如,当发送邀请电子邮件到某个地址时(显然与用户无关,否则他们就不需要邀请了),电子邮件是否包含邀请者的全名? ↩︎

  4. 例如,oneboxer.rb 在 onebox 本地用户时,会将全名写入已烹饪的帖子内容中,这会使所有人永久可见。 ↩︎

4 个赞