Cambia le pagine del gruppo predefinite in /messages

Quei link utilizzano un serializzatore leggermente diverso, poiché non tutti i dati del gruppo sono necessari lì.

Tuttavia, puoi memorizzare un elenco filtrato dei gruppi dell’utente corrente nella visualizzazione iniziale della pagina e utilizzarli come riferimento per verificare l’appartenenza. Queste informazioni sono già disponibili nel payload iniziale, quindi non c’è alcun sovraccarico in termini di richieste aggiuntive o altro. Qualcosa del genere:

<script type="text/discourse-plugin" version="0.8">
  const user = api.getCurrentUser();

  if (!user) {
    return;
  }

  const userGroups = user.groups.map(group => group.name);

  api.reopenWidget("pm-map-user-group", {
    transform(attrs) {

      const group = attrs.group;
      const isGroupUser = Object.values(userGroups).includes(group.name);

      // {href: "/g/foo"};
      let groupURL = this._super(...arguments);

      if (isGroupUser && group.has_messages) {
        groupURL.href = `${groupURL.href}/messages/`;
      }

      return groupURL;
    }
  });
</script>

Mantieni questo snippet nei suoi tag script e aggiungilo all’header insieme agli altri snippet. Lo tieni separato perché esegue un controllo rapido se l’utente non è connesso.