Comment restreindre l'accès au bouton épingner/désépingner

J’essaie ce code dans l’en-tête

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 = "Vous n'avez pas la permission d'épingler des sujets";
            });
        }
    }, 1000);  complet
});

et en CSS

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

mais un utilisateur simple avec un niveau de confiance de 1 ou 0 peut appuyer sur le bouton d’épinglage et le voir.

Désépingler automatiquement les sujets lorsque l'utilisateur atteint le bas par défaut. ceci est désactivé
Désépingler automatiquement les sujets lorsque l'utilisateur atteint le bas. ceci est désactivé

Salut, bienvenue ! :wave:

Parlez-vous de ces boutons ?

Vous pouvez masquer les boutons uniquement avec CSS.

Installez d’abord ce composant : CSS Classes for Current User's Groups. Il ajoutera les noms des groupes d’utilisateurs actuels, par exemple, group-<nom>, à l’élément <body>.

Ensuite, vous pouvez cibler n’importe quoi :

:not(.group-trust_level_4) #topic-footer-buttons .pinned-button {
  display: none;
}
5 « J'aime »

Notez également qu’un sujet peut être épinglé/désépinglé à plusieurs endroits :

4 « J'aime »

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