禁用 enable_names 设置会在 GUI 中移除全名。
管理员视图除外 - 到目前为止一切正常。
它似乎有效,但实际上无效。
- 最初姓名不显示
- 您可以编辑它
- 然后姓名会显示但永远不会保存
请看视频
版本:截至今天早上,tests-passed。
禁用 enable_names 设置会在 GUI 中移除全名。
管理员视图除外 - 到目前为止一切正常。
它似乎有效,但实际上无效。
请看视频
版本:截至今天早上,tests-passed。
enable names 设置已启用吗?
未启用。所以是最近的 bug。@JammyDodger 你能把这个话题和理查德的合并吗?
我不确定这是最近的
管理员应该能够看到和更新名称,而不管 enable_names 设置如何。 ![]()
直到最近我才注意到这种行为的变化(尽管这似乎是大约 4 年前首次报告的问题?)。
这是 Richard 一月份的帖子。
考虑到我正在使用的两个论坛分别有 4 年和 7 年的历史。
所以这可能是我没有注意到它何时发生变化的原因,因为用户很少更改/修复细节。
似乎他们可能需要添加一个设置?因此,名称是启用,并且可以选择全局显示或不显示。
正如您链接的讨论中所提到的,全名应至少显示给用户和管理员。
顶一下
管理员应该能够查看“名称”字段的内容。图片显示了我的账户,但即使编辑此字段并保存,刷新后也会变为空白。
我确定我们之前讨论过这个问题,但搜索时遇到了困难。
唯一的站点设置是取消隐藏并将其添加到显示的所有站点区域。
管理员应该始终能够查看此用户字段。而且,依我看,此详细信息也应显示在用户首选项菜单的“账户”中,因为它是其账户详细信息的一部分。
好的,我找到了 @Moin 提到的设置,但它不会为每个人填充。只为他们卡片上的当前用户填充。
启用的名称有效。但是用户之前在该字段中输入的任何信息都是空白的 好的,有些没有填充该字段。谜团解开了。
可能需要更好地解释此设置。依我看,它应该默认启用。
原因找到了
class BasicUserSerializer < ApplicationSerializer
# ...
def include_name?
SiteSetting.enable_names?
end
对管理员没有特殊的判断。
但我很好奇,应该如何修改?版主可以更改用户名吗?还是只有管理员? ![]()
我认为可以
我建议为所有版主提供一个开关。但正如我们讨论过的,管理员应该始终能够看到此字段。
启用姓名后,它会破坏隐私,因为它现在会在电子邮件中包含真实姓名。除非有额外的设置?在会员报告说电子邮件通知中包含真实姓名而不是仅用户句柄后,我找不到任何设置。
例如,发送给用户的电子邮件,其中包含来自我的回复,会在电子邮件中显示真实姓名。
那么,如果这会隐藏所有人的字段,那么它应该禁用使用该字段,因为即使会员也无法查看该详细信息。
我负责的稳定分支论坛也没有受到此处讨论的行为更改的影响。
在哪里可以修改电子邮件,使其不发送真实姓名而使用用户名?
另外,使用什么 CSS 才能让用户卡片只显示当前用户自己的真实姓名?
我认为版主也可以看到并编辑自定义用户字段,即使“注册后可编辑”和“显示在公开个人资料上”被禁用。在这种情况下,用户看不到自己的字段,但版主可以看到。也许姓名字段的行为方式一致会更好。
那么描述可以更改。例如:
在用户的个人资料、用户卡片和电子邮件上向所有人显示用户的全名。如果禁用,则全名仅对用户个人资料上的工作人员可见。
谢谢你,Richard!我能够重现你报告的问题,并且我们会将其修复。
管理员应该始终能够看到和管理用户的名称,即使它没有在论坛的各个地方显示。
关于本次对话的其余部分,我可以看到还有一些工作要做,以整合这些设置并使其更易于理解。我会将其添加到我们的待办事项中,以便进一步调查。
与此同时,我做了一个小的 PR 来移除 enable names 站点设置描述中含糊不清的语言。
我认为值得仔细分析并确定我们需要做出的决定,然后创建多个待办事项。我将自行分配任务来尝试解决这个问题。
此主题似乎有三个待办事项:
enable_names 站点设置enable_names 站点设置被禁用时,不在电子邮件中包含用户的全名enable_names 站点设置的描述,以表明它不是安全功能。管理员和版主可以看到它,熟悉 .json 的人也可以找到它。如果网站希望允许用户匿名,则不应在姓名字段中填写真实姓名。我们将研究 (1) 和 (2)。
至于 (3),我们需要找到更好的、不含糊的语言,并在此处的元(meta)上链接到一个文档主题以获取更详细的信息。像这样吗?
在个人资料、用户卡片和电子邮件中显示成员的全名。请注意,这不是安全功能。管理员和版主始终可以看到姓名,并且也可以通过 .json 发现姓名。了解更多
我已开始着手实现 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) 看起来是个好主意,但我们还没有进行更改。
您的实现不算差,但也许可以稍等片刻,给该团队的工程师一个在此回复的机会。
不过,有一个产品问题想问您……您为什么要让某些组访问全名而不让其他组访问?您能否更详细地解释一下您的用例?