Измените страницы групп по умолчанию на /messages

Конечно, вы можете попробовать что-то вроде этого во вкладке «Header» вашей темы или компонента. Я оставил несколько комментариев в сниппете, чтобы вы могли следить за процессом. Вы можете удалить их, когда будете готовы использовать код.

Действуют те же правила. Если пользователь является участником группы и у группы есть сообщения, Discourse перенаправит его в входящие сообщения группы. В противном случае пользователь попадёт в каталог участников.

<script type="text/discourse-plugin" version="0.8">
  // Часть 1: изменение пути для ссылок в карточках групп. Это гарантирует, что
  // заголовок ссылки отражает её назначение, а также обрабатывает открытие ссылки в новой вкладке.
  const discourseComputed = require("discourse-common/utils/decorators").default;
  
  api.modifyClass("component:group-card-contents", {
    // Свойство groupPath используется для генерации href для ссылок на группы
    // в карточке группы. Давайте изменим его
    @discourseComputed("group")
    groupPath(group) {
      // получаем значение по умолчанию из ядра
      let groupURL = this._super(...arguments);

      // если пользователь соответствует нашим требованиям, изменяем URL, чтобы он вел в входящие
      if (group.is_group_user && group.has_messages) {
        groupURL = `${groupURL}/messages/`;
      }

      // возвращаем либо значение по умолчанию, либо изменённое
      return groupURL;
    }
  });

  // Часть 2: изменение маршрутизации внутри приложения. Это гарантирует, что обычная навигация
  // внутри приложения обрабатывается корректно и направляет пользователя в входящие сообщения группы,
  // если он соответствует требованиям
  
  const DiscourseURL = require("discourse/lib/url").default;
  const { groupPath } = require("discourse/lib/url");
  const { action } = require("@ember/object");

  api.modifyClass("controller:user-card", {

    // showGroup здесь — это действие, принадлежащее контроллеру user-card.
    // Именно оно вызывается при клике на имя группы / аватарку внутри карточек групп
    @action
    showGroup(group) {
      // вызываем super, чтобы убедиться, что код из ядра загружен первым
      this._super(...arguments);

      // groupPath — это встроенная функция-помощник URL в Discourse
      let groupURL = groupPath(group.name);

      // если пользователь соответствует требованиям, изменяем URL
      if (group.is_group_user && group.has_messages) {
        groupURL = `${groupURL}/messages/`;
      }

      // вызываем routeTo() с либо значением по умолчанию, либо изменённым groupURL
      DiscourseURL.routeTo(groupURL);
    }
  });
</script>