デフォルトのグループページを/messagesに変更

それらのリンクは、グループデータがすべて必要ではないため、わずかに異なるシリアライザーを使用しています。

それでも、初期ページビューで現在のユーザーのグループのフィルタリングされたリストを保存し、それらをメンバーシップを確認するための参照として使用できます。この情報はすでに初期ペイロードで利用可能なので、追加のリクエストなどのオーバーヘッドはありません。以下のようなものです。

<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>

このスニペットを独自のスクリプトタグ内に保持し、他のスニペットと一緒にヘッダーに追加してください。ユーザーがログインしていない場合にすぐに終了するため、別にしておきます。