Alterar as páginas de grupo padrão para /mensagens

Claro, você pode tentar algo como isto na aba de cabeçalho do seu tema/componente. Deixei alguns comentários no trecho se você quiser acompanhar. Você pode excluí-los quando estiver pronto para usá-lo.

As mesmas regras se aplicam. Se o usuário for membro do grupo e o grupo tiver mensagens, o Discourse navegará para a caixa de entrada do grupo. Caso contrário, o usuário acessará o diretório de membros.

<script type="text/discourse-plugin" version="0.8">
  // Parte 1: modificar o caminho para os links nos cartões de grupo. Isso garante que o título do link
  // reflita para onde ele leva e lida com a abertura do link em uma nova aba.
  const discourseComputed = require("discourse-common/utils/decorators").default;

  api.modifyClass("component:group-card-contents", {
    // A propriedade groupPath é usada para gerar o href para os links de grupo
    // no cartão de grupo. Vamos modificá-la
    @discourseComputed("group")
    groupPath(group) {
      // obtém o valor padrão do núcleo
      let groupURL = this._super(...arguments);

      // se o usuário corresponder ao nosso requisito, modifica a url para que ela vá para a caixa de entrada
      if (group.is_group_user && group.has_messages) {
        groupURL = `${groupURL}/messages/`;
      }

      // retorna o valor padrão ou modificado
      return groupURL;
    }
  });

  // Parte 2: modificar o roteamento dentro do aplicativo. Isso garante que a navegação normal dentro do aplicativo
  // seja tratada corretamente e leve o usuário para a caixa de entrada do grupo se ele atender aos
  // requisitos

  const DiscourseURL = require("discourse/lib/url").default;
  const { groupPath } = require("discourse/lib/url");
  const { action } = require("@ember/object");

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

    // showGroup aqui é uma ação que pertence ao controller user-card.
    // Isso é o que é chamado quando você clica no nome/avatar do grupo dentro dos cartões de grupo
    @action
    showGroup(group) {
      // chama super para garantir que o código do núcleo seja carregado primeiro
      this._super(...arguments);

      // group path é uma função auxiliar de url integrada do Discourse
      let groupURL = groupPath(group.name);

      // se o usuário corresponder aos requisitos, modifica a url
      if (group.is_group_user && group.has_messages) {
        groupURL = `${groupURL}/messages/`;
      }

      // chama routeTo() com a groupURL padrão ou modificada
      DiscourseURL.routeTo(groupURL);
    }
  });
</script>