Trouver tous les groupes de l'auteur dans un sujet

Je voudrais afficher une petite touche pour tous les groupes d’un utilisateur sur chaque publication d’un sujet (sous le nom d’utilisateur). J’ai la fonctionnalité de base qui fonctionne, mais je me heurte à un mur pour trouver les groupes de l’utilisateur qui a fait la publication. Dans les attrs du widget post-meta-data, je peux trouver quelques détails de l’utilisateur, mais les groupes ne sont pas inclus. Je pense que je dois ajouter les groupes au sérialiseur de publication, mais je ne suis pas sûr de la façon de faire.

2 « J'aime »

Salut,

Je ne suis pas un expert, mais dans un plugin, vous pouvez ajouter le champ groups au sérialiseur de post, quelque chose comme ça :

add_to_serializer(
    :post,
    :groups
) { object.user&.groups }

Cependant, gardez à l’esprit qu’en l’état, n’importe qui peut voir dans quel groupe se trouve une personne.
Cela dit, je pense que tant que vous utilisez un flair, le nom du groupe sera visible par tout le monde, quelles que soient les autorisations.

Vous pourriez également insérer un nouveau champ available_flairs pour ne retourner que les champs nécessaires des flairs du groupe :

add_to_serializer(:post, :available_flairs) do
  flairs = Array(object.user&.groups&.map do |group|
    next unless group.flair_url
    {
      id: group.id,
      name: group.name,
      url: group.flair_url,
      bgColor: group.flair_bg_color,
      color: group.flair_color
    }
  end).compact

  flairs
end

J’espère que cela vous aide. :+1:

3 « J'aime »

Ce composant pourrait être intéressant lors de la création d’un post, peut-être pour ajouter des “flairs” au post lors de sa création ?

La deuxième solution est exactement ce que je recherche, mais je n’arrive pas à la faire fonctionner. Pour une raison quelconque, le tableau available_flairs n’apparaît pas du tout. Ai-je raison de supposer que le code doit aller dans plugins.rb ?

Pour apparaître dans le contexte post-meta-data, essayez d’utiliser l’API. Cela devrait fonctionner !

api.includePostAttributes("available_flairs");

Ça a marché. Merci pour votre aide !

1 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.