管理者のみが使用できるテーマを作成する方法

テーマを作成するには、管理者のみが使用できるものではなく、どうすればよいですか?

おっしゃっている意味がよくわかりません。もう少し詳しく説明していただけますか?

「いいね!」 1

私のフォーラムでは多くの問題が発生しています。メタでもすでにコメントしましたが、Discourseにはそのオプションがないため、モデレーターの危険な機能を無効にすることができませんでした。そこで、CSSで回避策を作成し、フォーラムでアクセスできる危険なオプションを削除しました。CSSで実行したところ、私自身もそれらのオプション(IPアドレスの表示、BAN、全投稿の削除など)にアクセスできなくなりました。すべてのテーマから削除しましたが、CSSなしのテーマを1つだけ残してオプションを確認できるようにしたいのですが、そのテーマを使用できるのは私だけとしたいです。

「いいね!」 1

モデレーターの管理にCSSやテーマを使用している理由はわかりませんが、それは正しい方法ではありません。カテゴリのモデレーターを作成するには信頼レベルを使用し、モデレーターもより慎重に選択してください。CSSやテーマでモデレーターの機能を制限しようとすると、おそらく問題が増えるだけでしょう。

「いいね!」 1

CSS を介してモデレーターの役割を変更することで、すべての問題を解決しました。これは非常に複雑な状況であり、唯一の実際の解決策はこれでした。すでにカテゴリ モデレーションを試しましたが、フォーラムでは実行可能ではなく、需要にとって興味深いものではありませんでした。私の問題を解決した唯一の方法は、CSS を介した変更でした。Discourse は管理者と同じモデレーター オプションを残しているため、これが唯一の解決策でした。しかし今、私は CSS の変更がないテーマを使用する方法を必要としています。そのため、使用するたびにオフにする必要はありません。

ブラジルで起こったことについて少しお話しします。私はブラジルに住んでいますが、ここでは人口が2億1430万人で、そのほとんどが失業しており、購買力もありません。多くの人がインターネットを娯楽の手段として利用しているので、私のフォーラムもそれに合っています。しかし、私のフォーラムの存在は、別のフォーラムを大いに脅かしており、そのフォーラムはすでに私のフォーラムに対して数え切れないほどの攻撃を仕掛けてきました。そして、私のモデレーターの多くをすでに買収し、数え切れないほどのモデレーターがユーザーを削除し、メッセージを削除し、IPを他人に漏洩させ、私を本当に破壊しました。私はすでに数ヶ月間モデレーターなしで過ごしましたが、モデレーターなしでフォーラムを運営するのは非常に困難です。モデレーターを再び配置したいのですが、慎重に選んでも無駄です。北欧諸国の文化は知りませんが、少なくとも私の国のフォーラムの分野の文化では、人々はそれを真剣に受け止めず、簡単に買収されます。いつかはお金が物を言い、彼らはその力を使って私のフォーラムを破壊する可能性があります。私に残された唯一の解決策は、モデレーターが管理者と同じ権限を持たないようにすることでした。そして、CSSを通じてそれが唯一解決できたことです。

「いいね!」 1

この件についてはすでにトピックを立てましたが、議論は進展せず、多くの人がモデレーターをより慎重に選ぶべきだとアドバイスしてくれました。しかし、私が参加しているワールドフォーラムには当てはまりません。唯一の解決策は、モデレーターからいくつかの権限(IP、BAN、全投稿削除、メールチェックなど)を剥奪することでしたが、それは私にも影響がありました。

こんにちは :wave:
テーマを無効にするには、セーフモード(モデレーターと同じように)を使用できます。

カスタムセクションを使用すると、/safe-mode へのクイックアクセスを作成できます。

  1. サイドバーに次のようなカスタムセクションを作成します。


    このように表示されるはずです。(タイトル、名前、リンク /safe-mode を追加します)「このセクションを公開し、全員に表示する」チェックボックスをオンにしないように注意してください。

  2. ナビゲーションメニュー(サイドバー)のカスタムセクションに配置されます。

  3. ここでテーマやテーマコンポーネントを無効にできます。「セーフモードに入る」ボタンをクリックします。

「いいね!」 4

カテゴリモデレーターを確認してみてはどうでしょうか?

「いいね!」 2

悪意のあるアクターがセーフモードを発見した場合、CSSによる対策は効果がなくなります。

Discourseを保護する唯一の方法は、バックエンドを介して権限を慎重に割り当てることです。

「いいね!」 4

つまり、それらの変更を行うカスタムプラグインが必要になるということです。予算がある場合(おそらく1000ドルから5000ドル?)、カテゴリモデレーターまたはtl4を試す必要があります。

「いいね!」 2

ここではすでに話し合われています: :slight_smile:

「いいね!」 1

管理者はテーマコンポーネントで、それ以外の人には要素を非表示にできるはずだと思います。

しかし、セーフモードでは簡単に回避できてしまいます。おそらく、私が最初に推定したよりも短い時間で、これらの機能を無効にする簡単なプラグインを作成できるでしょう。

「いいね!」 1

ここにいる皆さんが言っていることのほとんどに同意します。

もし本当にCSSの方法で行きたいなら、管理者以外にのみCSSの変更を適用する方法は次のとおりです。

テーマの「Head」タブに次のように記述します。

    <script type="text/discourse-plugin" version="1.4.0">
        let currentUser = api.getCurrentUser();
        if (currentUser.admin == true) {
             document.querySelector("body").classList.add("is-admin");
        }
    </script>

すべてのCSSルールを body:not(.is-admin) { (あなたのCSS) } で囲みます。たとえば次のようになります。

body:not(.is-admin) {
    #main {
        background: pink;
    }
}

私の例では、ピンクの背景は管理者以外のすべての人に適用されます。

「いいね!」 3

Discourseは自動的にグループベースのクラスを<body>に追加するため、JSをスキップして次のようなことを行うことができるはずです

body:not(.group-admins) #main { background: pink; }

私のテストインスタンス(最新の Discourse バージョン)では、管理者として staff 以外のグループ固有のクラスはありません。

<body class="chat-enabled staff has-sidebar-page navigation-topics docked">

私の知る限り、<html> やその他のタグには何もありません。

meta では、CSS Classes for Current User's Groups を使用しており、これは daniela の場合にも使用できます。 :slight_smile:

「いいね!」 2

ああ、それが私を混乱させていた原因でした。Metaを見ていました :man_facepalming: @Canapin ありがとうございます。

「いいね!」 3

本当に大好きです

1年以上解決できなかったこの問題を解決してくれてありがとう

「いいね!」 2