Restrict exposure of full name to certain groups の解決策を提案するにあたり、(サーバーサイドの) パーミッション述語を定義したいと思います。この述語は、「現在のユーザー範囲/コンテキストに基づいて、(他の) ユーザーのフルネームを明らかにしてもよいか?」という質問に答えます。
(範囲は、クライアントリクエストによって設定されるか、ダイジェストメールメッセージの生成のような内部処理ステップによって設定される可能性があります。)
このような述語に適切な構成は何ですか? コードベースのどこに配置すべきですか? おそらくこれはガーディアンに属するのではないかと考えていますが、それは正しい方向でしょうか? どのガーディアンが良いでしょうか?
この新しい述語は、コードベース内の SiteSettings.enable_names? の多くのインスタンス (すべてではありませんが) を包含すると想像しています。( user.name を返すシリアライザーにヒットさせることが、データの漏洩のほとんどを防ぎますが、完全ではありません。) これによる nice な利点は、将来のプラグインが動作を変更できる拡張ポイントを導入することです (現在のところ可能ではないようです。そうでなければ、それを実行するだけです!)。したがって、これを機能させることができれば、これはディスコースコアへのプルリクエストになります。そして、受け入れられる可能性のある PR を提出したいと思います。