Os administradores adicionaram uma personalização CSS que se parece com isto:
body:not([class*="category-council-"]):not(.staff).closed-topic .reply,
body:not([class*="category-council-"]):not(.staff).closed-topic #topic-footer-buttons .create,
body:not([class*="category-council-"]):not(.staff).closed-topic .timeline-container .create,
body:not([class*="category-council-"]):not(.staff).closed-topic #reply-control {
display: none !important;
}
Isso parece estar ok à primeira vista, mas então eu vejo que body.closed-topic é aplicado à lista de tópicos… o que realmente não faz sentido.
Essa classe não está no Discourse por padrão, então rastreando outra personalização que adiciona isso…
<script type="text/discourse-plugin" version="0.8">
const container = Discourse.__container__;
const controller = container.lookup("controller:topic");
const currentUser = api.getCurrentUser();
api.onPageChange(() => {
if (!currentUser || currentUser.admin || currentUser.moderator || currentUser.trust_level != 4 ) {
return;
} else {
let model = controller.get("model");
document.querySelector("body").classList.add("closed-topic");
if (model) {
if (!model.closed) {
document.querySelector("body").classList.remove("closed-topic");
}
}
}
});
</script>
Então aqui, se você estiver logado, não for um administrador, não for um moderador e tiver nível de confiança 4… então ele adiciona a classe closed-topic ao corpo da página.
Essa classe só é removida se model.closed for falso, o que significa… se não for um tópico fechado (ou mesmo se não for um tópico) a classe closed-topic será aplicada.
Esta linha:
document.querySelector("body").classList.add("closed-topic");
provavelmente deveria estar dentro de if (model) porque, de outra forma, ela é aplicada mesmo quando não há modelo presente (por exemplo, quando você não está em um tópico)…
Parece que a intenção era impedir que usuários de nível de confiança 4 respondessem a tópicos fechados, mas está sendo aplicado de forma muito ampla.