部分読み取り専用モード

時折、新しい投稿を防ぐためにフォーラムを「読み取り専用」モードにする必要がある状況に遭遇します。

しかし、読み取り専用モードが設定変更、SSO同期、ログインも防止してしまうのは非常に迷惑です。

投稿と投稿アクションのみが読み取り専用になるような、部分的な読み取り専用モードがあれば素晴らしいでしょう。

現時点では、すべてのカテゴリセキュリティグループから投稿権限を剥奪することしか思いつきませんが、それは少しハッキーすぎ、一時的にどこかに保存しておく必要があります。

これを達成するための最善の方法について、何かアイデアはありますか?

おそらくこれはプラグインの領域ですが、それでも:どのようなアプローチが最善でしょうか?

「いいね!」 14

プラグインとサイト設定で対応できるはずです。

validate_post フックを試して、サイト設定が読み取り専用に設定されている場合に「無効」を返すカスタム検証を追加してみてはどうでしょうか。

「いいね!」 6

NewPostManager.add_handler を使用しましたが、:validate_post イベントは通知のみを行い、投稿を拒否する結果を返す機会がないようです。

以下は、ボタン一つで投稿を無効にするプラグインです: GitHub - communiteq/discourse-prevent-posting

設定

管理者 - プラグイン - discourse-prevent-posting - 設定 に移動します。

prevent posting enabled : プラグインを有効にし、新しい投稿が作成されないようにします。

prevent posting message : プラグインが有効な場合にグローバル通知として表示されるメッセージ。

prevent posting allow pms : 有効な場合、プライベートメッセージが許可されます。

「いいね!」 7

これをロードマップに追加すべきだと思います @sam

「いいね!」 7

承知いたしました。

ただし、ここでは設定を確定させたいと考えており、理想的には複数のオプションを備えた単一のサイト設定に収めることができればと考えています。

まず、良い仕様を策定したいと思います。いくつか質問があります。

  • 反応やプラグインについてはどうでしょうか?
  • ユーザープロフィールについてはどうでしょうか?
  • 新規アカウントでのサインアップについてはどうでしょうか?

ここでの忠実性を許容しすぎることについても懸念しています。

シンプルな「メンテナンスモード」のオン/オフ機能と、管理者が常にバイパスできる機能があれば十分でしょうか?

「いいね!」 8

FYI/FWIW -

このプラグインは、私たちのコミュニティのために「安息日」モードを提供します。その中心にあるのは、オンラインの文脈で経験したことを、地域社会の隣人を愛をもって奉仕するように促すことです。

Richardが開発したものの背後にある主要なコンポーネントは次のとおりです。

  • 定期的および時折の投稿無効化と再有効化のスケジュール設定機能。週末(継続的)および主要な祝日(時折)の投稿を無効にする機能があります。

  • カスタムグローバルバナーと同期する機能により、参加者を混乱させないようにします(「なぜサイトが機能しないのですか?!」)。むしろ、訪問者やメンバーに投稿が一時的に無効になっている理由を明確に説明できます。

その他のアクティビティについては、次のとおりです。

  • リアクションの無効化は、元のビジョンと一致していますが、管理者がこのサイト設定の汎用性を拡大するために切り替えることができるチェックボックスになる可能性があると思います。

  • このプラグインは他のプラグインに影響しないと思います。

  • 新規アカウントは作成できます。投稿のみが無効になります。

これは美しく機能します。この機能がロードマップに統合される可能性があることに興奮しています。

「いいね!」 3

@outofthebox 実際、スケジューリングはこのプラグインの一部ではありません。これは、prevent-posting プラグインと密接に連携する scheduled-readonly プラグインです。

「いいね!」 5

訂正します! :slight_smile:

「いいね!」 4

これを把握できてとても嬉しいです。特にクラスを運営しながらDiscourseサイトを運営する場合、休暇モードやSabbathモードのアイデアを試していました。

両方のプラグインを試してみます。ありがとうございます!

編集:これをテストして、サイトの1つで動作させることができましたが、プラグインを編集して無効にしようとしたところ、読み取り専用モードになっていると表示され、設定を編集できませんでした。管理 > バックアップで「読み取り専用モードを無効にする」をクリックしましたが、プラグインが設定を上書きしていたようです。

プラグインが有効になり、読み取り専用期間に入った後、無効にする方法はありますか?

編集2:プラグインがスタックして、期間が過ぎても読み取り専用モードが強制されたため、プラグインなしで再構築する必要がありました。手動で「読み取り専用モードを無効にする」ボタンをクリックしたことが原因かどうかはわかりません。また、別のDiscourseインスタンスではホリデー期間が有効になっていなかったため、困惑しています :slight_smile:

「いいね!」 2

OP と同様のことが可能になりました。

最近、「スタッフのみ書き込み可能」モードを追加しました。これは、スタッフ以外のユーザーにのみ影響する読み取り専用モードです。スタッフはログイン、投稿、設定の変更などを行うことができますが、他のユーザーは事実上読み取り専用モードのサイトを見ることができます。

使用方法

有効にするには、コンソールから以下を実行します。

Discourse.enable_readonly_mode(Discourse::STAFF_WRITES_ONLY_MODE_KEY)

無効にするには、以下を実行します。

Discourse.disable_readonly_mode(Discourse::STAFF_WRITES_ONLY_MODE_KEY)

お役に立てば幸いです。ご不明な点がございましたらお知らせください。

「いいね!」 14

ADMIN_WRITES_ONLY_MODE_KEY を実装して、モデレーションアクションも防止する可能性はありますか?

フォーラムを読み取り専用モードにし、バックアップを実行してから、新しいVPSをゼロから再構築し、バックアップを復元し、IPを新しいサーバーにシームレスに切り替えるまで、フォーラムをオンラインで表示可能にしておくというユースケースがあります。ダウンタイムはありません。

バックアップ/読み取り専用モード後に古いサーバーで実行されたモデレーションアクションは、モデレーターが部分的な読み取り専用モードから除外されている場合、ライブスイッチ後に失われます。

現在、フル読み取り専用モードを使用していますが、Web UIを使用した管理者による変更も防止するため、煩雑です。

「いいね!」 3

このトピックは13日後に自動的に閉じられました。返信はもう受け付けられません。

これが追加されたので、スケジュール読み取り専用プラグインにオプションとして追加する計画はありますか?

「いいね!」 3

良いアイデアですね。楽しいプロジェクトのリストに入れておきます。それまでの間、PRも歓迎です :slight_smile:

「いいね!」 3

スケジュール読み取り専用プラグインをテストしている方に注意喚起です。約2分間のテストケースを設定しましたが、オフにならない理由がわからず混乱しました。確認は5分ごとに行われるようです。

「いいね!」 2

管理者が読み取り専用モードでもチャットメッセージを送信できると素晴らしいのですが