Latest.json contient les champs admin et trustlevel - lorsqu'il n'est pas connecté

Bonjour, notre instance Discourse affiche les champs admin et trustlevel de l’utilisateur dans le corps de la réponse /latest.json (derniers sujets) pour les utilisateurs non authentifiés.

Par exemple, un utilisateur dans la liste /latest.json apparaît comme suit :

{
  "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": []
}

Le fait qu’un utilisateur soit administrateur est une information sensible selon moi ; est-il possible de ne pas afficher les champs a. admin et b. trust_level dans la page de réponse /latest.json pour 1. les utilisateurs non authentifiés et 2. tous les utilisateurs ?

C’est là le problème. Ce n’est pas considéré comme sensible, à ma connaissance. Il est possible de masquer aux utilisateurs qui sont administrateurs via un plugin.

1 « J'aime »

Merci pour la réponse rapide ! Que voulez-vous dire exactement par :

Il est possible de se cacher des utilisateurs qui sont des administrateurs sur un plugin.

Est-ce que un plugin fait référence à un plugin spécifique ?

J’en ai écrit un qui masque mon utilisateur de la liste d’administration. Je ne suis pas entièrement sûr qu’il masque mon utilisateur de ce chargement JSON, mais je pense que oui ?

Cela faisait partie d’un plugin plus large, donc je ne pense pas avoir cette partie publiquement disponible. Je peux essayer de publier les éléments clés ici, ou vous pouvez me contacter si vous avez un budget et que vous voulez que je le fasse pour vous.

Ce n’est pas le cas. Nous les mettons même en avant sur la page /about :smile:

3 « J'aime »

Je trouve le mien. Il semble qu’il supprime l’administrateur uniquement de la page /admin :

  require_dependency 'admin_constraint'
  add_to_serializer(:about, :admins) do
    object.admins.reject { |u|
      puts "REJET : #{u.emails.first} "
      u.emails.first =~ HIDDEN_EMAIL_REGEXP
    }
  end
2 « J'aime »

Je ne savais pas que la page “À propos” répertoriait les modérateurs et les administrateurs, donc cela explique pourquoi elle n’est pas traitée comme une information sensible. J’ai ma réponse, merci à tous pour vos réponses rapides, j’apprécie beaucoup !

2 « J'aime »