ログインしていない場合、Latest.json に admin および trustlevel フィールドが含まれる

こんにちは、Discourseインスタンスでは、認証されていないユーザーに対して/latest.json(最新トピック)のレスポンスボディにユーザーadmintrustlevelフィールドが表示されます。

たとえば、/latest.jsonのリストにあるユーザーは次のように表示されます。

{
  "users": [
    {
      "id": 32,
      "username": "Beeblebrox",
      "avatar_template": "/user_avatar/my-discourse.org/beeblebrox/{size}/1_1.png",
      "flair_name": null,
      "admin": true,
      "trust_level": 1
    }
  ],
  "primary_groups": [],
  "flair_groups": [],
  "topic_list": []
}

ユーザーが管理者であるかどうかは、IMOでは機密情報です。/latest.jsonレスポンスページで、1.認証されていないユーザーと2.すべてのユーザーに対して、a.管理者とb.信頼レベルのフィールドを表示しないようにすることは可能ですか?

それが問題です。私が知る限り、どこでも機密情報として扱われていません。プラグインでユーザーに管理者が誰であるかを隠すことは可能です。

「いいね!」 1

迅速な回答ありがとうございます!具体的にどういう意味ですか?

管理者がプラグインにいるユーザーを非表示にすることができます。

s plugin は特定のプラグインですか?

ユーザーを管理者リストから非表示にするものを作成しました。そのJSONロードからもユーザーが非表示になるかどうかは完全にはわかりませんが、そうなる可能性があると考えています。

これはより大きなプラグインの一部だったので、その部分を公開しているとは思えません。ここに主要な部分を投稿することもできますし、予算があれば私に連絡して依頼することもできます。

そうではありません。/aboutページでも目立つように紹介しています :smile:

「いいね!」 3

見つけました。/admin ページから管理者のみを削除しているようです。

  require_dependency 'admin_constraint'
  add_to_serializer(:about, :admins) do
    object.admins.reject { |u|
      puts "REJECT: #{u.emails.first} "
      u.emails.first =~ HIDDEN_EMAIL_REGEXP
    }
  end
「いいね!」 2

アバウトページにモデレーターと管理者がリストされていることを知らなかったので、機密情報として扱われていない理由がわかりました。回答は得られました。迅速な回答をありがとうございました。

「いいね!」 2