ボタンのピン留め・解除へのアクセスを制限する方法

ヘッダーでこのコードを試しました

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 = "トピックをピン留めする権限がありません";
            });
        }
    }, 1000);
});

そしてCSSで

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

しかし、信頼レベルが0または1の一般ユーザーはピンボタンをタップでき、それを見ることができます。

デフォルトで、ユーザーが一番下に達したらトピックのピン留めを自動的に解除します。 これはオフです
ユーザーが一番下に達したらトピックのピン留めを自動的に解除します。 これはオフです

こんにちは、ようこそ! :wave:

これらのボタンについて話していますか?

CSSのみでボタンを非表示にできます。

まず、このコンポーネントをインストールしてください: https://meta.discourse.org/t/css-classes-for-current-users-groups/226068。これにより、現在のユーザーグループ名(例: group-<name>)が <body> 要素に追加されます。

その後、任意の要素をターゲットにできます:

:not(.group-trust_level_4) #topic-footer-buttons .pinned-button {
  display: none;
}
「いいね!」 5

また、トピックをピン留め/ピン留め解除できる場所はいくつかあります。

「いいね!」 4

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