Esses links usam um serializador ligeiramente diferente - porque nem todos os dados do grupo são necessários lá.
Ainda assim, você pode armazenar uma lista filtrada dos grupos do usuário atual na visualização inicial da página e usá-los como referência para verificar a associação. Essas informações já estão disponíveis na carga útil inicial, portanto, não há sobrecarga em termos de solicitações extras ou algo assim. Algo como isto
<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>
Mantenha este trecho em suas próprias tags de script e adicione-o ao cabeçalho junto com os outros trechos. Você o mantém separado porque ele sai rapidamente se o usuário não estiver logado.