Como restringir o acesso ao botão de fixar/desafixar

Tentei este código no cabeçalho

document.addEventListener("DOMContentLoaded", function() {
    setTimeout(() => {
        let userTrustLevel = parseInt(Discourse.User.current().trust_level);

        if (userTrustLevel < 4) {
            document.querySelectorAll(".pin-topic, .unpin-topic").forEach(button => {
                button.style.pointerEvents = "none";
                button.style.opacity = "0.5";
                button.title = "Você não tem permissão para fixar tópicos";
            });
        }
    }, 1000);
});

e no css

.d-header-icons .pin-topic,
.d-header-icons .unpin-topic,
.controls .pin-topic,
.controls .unpin-topic {
    display: none !important;
}

mas um usuário simples com nível de confiança 1 ou 0 pode tocar no botão de fixar e vê-lo.

Desafixar automaticamente tópicos quando o usuário chega ao final por padrão. está desativado
Desafixar automaticamente tópicos quando o usuário chega ao final. está desativado

Olá, bem-vindo! :wave:

Você está falando sobre estes botões?

Você pode ocultar os botões apenas com CSS.

Instale primeiro este componente: CSS Classes for Current User's Groups. Ele adicionará os nomes dos grupos de usuários atuais, por exemplo, group-<nome>, ao elemento <body>.

Então você pode direcionar qualquer coisa:

:not(.group-trust_level_4) #topic-footer-buttons .pinned-button {
  display: none;
}
5 curtidas

Observe também que há vários locais onde um tópico pode ser fixado/desafixado:

4 curtidas

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.