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

禁用 enable_names 设置会在 GUI 中移除全名。
管理员视图除外 - 到目前为止一切正常。
它似乎有效,但实际上无效。

  • 最初姓名不显示
  • 您可以编辑它
  • 然后姓名会显示但永远不会保存

请看视频

版本:截至今天早上,tests-passed。

8 个赞

在管理菜单中编辑用户时。更改用户姓名后保存,但在刷新后未保存任何内容。

姓名栏中看不到姓名。

编辑并保存。刷新页面,如上图所示,未保存姓名。

运行测试已通过,并且是最新的。

3 个赞

enable names 设置已启用吗?

5 个赞

未启用。所以是最近的 bug。@JammyDodger 你能把这个话题和理查德的合并吗?

3 个赞

我不确定这是最近的

1 个赞

管理员应该能够看到和更新名称,而不管 enable_names 设置如何。 :thinking:

4 个赞

直到最近我才注意到这种行为的变化(尽管这似乎是大约 4 年前首次报告的问题?)。

这是 Richard 一月份的帖子。

考虑到我正在使用的两个论坛分别有 4 年和 7 年的历史。

所以这可能是我没有注意到它何时发生变化的原因,因为用户很少更改/修复细节。

似乎他们可能需要添加一个设置?因此,名称是启用,并且可以选择全局显示或不显示。

正如您链接的讨论中所提到的,全名应至少显示给用户和管理员。

2 个赞

顶一下


管理员应该能够查看“名称”字段的内容。图片显示了我的账户,但即使编辑此字段并保存,刷新后也会变为空白。

我确定我们之前讨论过这个问题,但搜索时遇到了困难。

唯一的站点设置是取消隐藏并将其添加到显示的所有站点区域。

管理员应该始终能够查看此用户字段。而且,依我看,此详细信息也应显示在用户首选项菜单的“账户”中,因为它是其账户详细信息的一部分。

3 个赞

好的,我找到了 @Moin 提到的设置,但它不会为每个人填充。只为他们卡片上的当前用户填充。

启用的名称有效。但是用户之前在该字段中输入的任何信息都是空白的 好的,有些没有填充该字段。谜团解开了。

可能需要更好地解释此设置。依我看,它应该默认启用。

原因找到了

class BasicUserSerializer < ApplicationSerializer
  # ...
  def include_name?
    SiteSetting.enable_names?
  end

对管理员没有特殊的判断。

但我很好奇,应该如何修改?版主可以更改用户名吗?还是只有管理员? :thinking:

3 个赞

我认为可以

3 个赞

我只是想知道版主是否应该受到“隐藏所有位置”描述的影响……也许他们甚至在管理面板中也看不到名字?

更新:根据此描述,管理员也不应能看到它

1 个赞

我建议为所有版主提供一个开关。但正如我们讨论过的,管理员应该始终能够看到此字段。

启用姓名后,它会破坏隐私,因为它现在会在电子邮件中包含真实姓名。除非有额外的设置?在会员报告说电子邮件通知中包含真实姓名而不是仅用户句柄后,我找不到任何设置。

例如,发送给用户的电子邮件,其中包含来自我的回复,会在电子邮件中显示真实姓名。

那么,如果这会隐藏所有人的字段,那么它应该禁用使用该字段,因为即使会员也无法查看该详细信息。

我负责的稳定分支论坛也没有受到此处讨论的行为更改的影响。

在哪里可以修改电子邮件,使其不发送真实姓名而使用用户名?

另外,使用什么 CSS 才能让用户卡片只显示当前用户自己的真实姓名?

1 个赞

我认为版主也可以看到并编辑自定义用户字段,即使“注册后可编辑”和“显示在公开个人资料上”被禁用。在这种情况下,用户看不到自己的字段,但版主可以看到。也许姓名字段的行为方式一致会更好。

那么描述可以更改。例如:

在用户的个人资料、用户卡片和电子邮件上向所有人显示用户的全名。如果禁用,则全名仅对用户个人资料上的工作人员可见。

2 个赞

谢谢你,Richard!我能够重现你报告的问题,并且我们会将其修复。 :+1: 管理员应该始终能够看到和管理用户的名称,即使它没有在论坛的各个地方显示。

关于本次对话的其余部分,我可以看到还有一些工作要做,以整合这些设置并使其更易于理解。我会将其添加到我们的待办事项中,以便进一步调查。

与此同时,我做了一个小的 PR 来移除 enable names 站点设置描述中含糊不清的语言。

3 个赞

我认为值得仔细分析并确定我们需要做出的决定,然后创建多个待办事项。我将自行分配任务来尝试解决这个问题。

2 个赞

此主题似乎有三个待办事项:

  1. 始终允许管理员查看和编辑用户的全名,即使禁用了 enable_names 站点设置
  2. enable_names 站点设置被禁用时,不在电子邮件中包含用户的全名
  3. 更改 enable_names 站点设置的描述,以表明它不是安全功能。管理员和版主可以看到它,熟悉 .json 的人也可以找到它。如果网站希望允许用户匿名,则不应在姓名字段中填写真实姓名。

我们将研究 (1) 和 (2)。

至于 (3),我们需要找到更好的、不含糊的语言,并在此处的元(meta)上链接到一个文档主题以获取更详细的信息。像这样吗?

在个人资料、用户卡片和电子邮件中显示成员的全名。请注意,这不是安全功能。管理员和版主始终可以看到姓名,并且也可以通过 .json 发现姓名。了解更多

4 个赞

我已开始着手实现 Restrict exposure of full name to certain groups

我的方法是用一个新的 Guardian#can_see_full_names? 来替换 SiteSetting#enable_names,并在适当的上下文中进行。这个新的 guardian predicate 会将用户上下文与一个新的站点设置 full_names_visible_to_groups 进行检查。

我不想无意中踩到别人的脚(或重复别人的工作)——关于上面 (1)/(2)/(3) 等的计划/状态是否有任何更新,以及是否有任何我应该注意的未发布(即不在 main 仓库中)的工作/代码?

(1) 和 (2) 在我们的列表中,但尚未确定优先级或开始处理。(3) 看起来是个好主意,但我们还没有进行更改。

您的实现不算差,但也许可以稍等片刻,给该团队的工程师一个在此回复的机会。

不过,有一个产品问题想问您……您为什么要让某些组访问全名而不让其他组访问?您能否更详细地解释一下您的用例?