为了提出一个关于 Restrict exposure of full name to certain groups 的解决方案,我想定义一个(服务器端)权限谓词,它回答了以下问题:
根据当前的用户范围/上下文,是否可以显示(其他)用户的全名?
(范围可以由客户端请求设置,或由某些内部处理步骤设置,例如生成摘要电子邮件。)
这种谓词的正确构造是什么?它应该放在代码库的什么位置?我正在考虑这可能属于 Guardian — 我是否在正确的轨道上?关于哪一个有什么意见?
我设想这个新的谓词将取代代码库中许多(但不是全部)SiteSettings.enable_names? 的实例。(命中产生 user.name 的序列化器可以堵住大部分数据泄露,但并非全部。)这样做的一个好处是它将引入一个扩展点,未来的插件可以通过该扩展点更改行为(据我所知,目前还不可能,否则我早就这样做了!)。因此,如果我能让这个工作正常,这将成为 discourse 核心的一个拉取请求 — 我希望提交一个有可能被接受的 PR。