グループユーザーのステータス

:information_source: 概要 ユーザー状態機能を特定のグループに制限します
:hammer_and_wrench: リポジトリリンク https://github.com/Lillinator/group-user-status
:open_book: インストールガイド Discourseへのプラグインインストール方法

:woman_technologist:t2: 概要

このシンプルなプラグインは、フォーラム管理者がユーザー状態機能を特定のユーザーグループや信頼レベルに制限できるようにします。

現在、Discourseコアのユーザー状態はフォーラム全体に対してのみ有効にすることができます。しかし、このプラグインによりより細かな制御が可能になり、管理者はどのユーザーグループがユーザー状態を設定・表示できるかを指定でき、コミュニティ管理の柔軟性を高めます。

機能

  • グループベースの権限 - ユーザー状態の設定を選択したグループ(信頼レベル、カスタムグループ、またはその両方)に制限
  • 管理者のオーバーライド - グループの選択に関係なく、管理者は常に状態権限を保持
  • 自動クリーンアップ - 権限を失った場合(設定変更またはグループからの削除により)に、ユーザーから状態を削除
  • UI統合 - 権限のないユーザーから状態制御を非表示

:gear: インストールと設定

  1. 標準プラグインインストールガイドに従ってください。

  2. 管理者 -> すべてのサイト設定に移動し、「user status」と検索して関連する管理者設定を表示します。

  3. 既存の管理者設定 Enable_user_status が有効になっていることを確認します。

  4. 次に、新しい管理者設定 User_status_allowed_groups に移動し、ユーザー状態機能の使用と表示が許可されるグループを選択します。

  5. User_status_allowed_groups 設定リストにないグループは、ユーザーメニューのタブから、または preferences/account タブからユーザー状態モーダルにアクセスできません。

  6. Enable_user_status が既に有効で、一部のユーザーがユーザー状態を設定している場合、このプラグインは新しい設定にすぐに追加されない限り、その状態をクリアします。

  7. /admin/users/ または /admin/groups/ パス(または自分でグループを退出できる場合)を通じて、許可されたグループからユーザーが削除された場合も、既存の状態を削除します。

  8. 擬似グループ everyone を選択することは、デフォルトで空のままにすること、またはコンポーネントをインストールしないことと同じです。

  9. 管理者は、どのグループが選択されていても、常に状態を設定・変更できます。したがって、admins グループのみを選択すると、ユーザー状態の使用はフォーラム管理者に制限されます。


:wrench: 設定

このプラグインにより追加される新しい管理者設定は1つだけです - User_status_allowed_groups で、これはフォーラムのグループのドロップダウンリストです。すべてのサイト設定で user status を検索することで見つけることができ、管理者サイドバーの グループ権限 セクションにリストされています。


:briefcase: 使用例

  • ユーザー状態機能がフォーラムスタッフにのみ関連しており、他のユーザーに対してユーザー状態を表示したい場合。

  • カテゴリーモデレーターのみが状態を設定できるようにする。

  • 信頼度の低いユーザーグループによるユーザー状態機能の悪用(またはその他の誤用)を防ぐために使用できます。

  • 特別なグループのみがユーザー状態を表示できる - 例えば、テクニカルサポートチーム、製品販売者、カテゴリー専門家、パトロン、マスターヨーヨー芸人など。

  • 管理者のみがコーヒーを飲みに行くことが許可されています :wink: :coffee:


:bulb: 注記:通知とカレンダーの統合

このプラグインはユーザー状態のみに影響し、通知設定には影響しません:

  • 状態モーダルの「通知を一時停止」オプションは別の機能です。
  • ユーザーの状態がこのプラグインによってクリアされた場合、一時停止された通知は引き続き有効です。
  • 一時停止された通知インジケーターは、期間が終了するか、手動で一時停止を解除するまでアバターに表示されます。

Discourse Calendarプラグインがインストールされている場合:

  • カレンダープラグインによって設定された休暇状態は、このプラグインの影響を受けません。
  • 非常に稀なエッジケース: ユーザーが手動で休暇状態を上書きし、スケジュールされた休暇中に管理者が user_status_allowed_groups からそのグループを削除した場合、手動で設定された状態はクリアされます。
  • カレンダープラグインは10分ごとに休暇状態を自動的にリセットするため、クリアされた状態は次のスケジュール実行時に復元されます。
  • ユーザーは、許可されたグループに属していないが、現在スケジュールされた休暇状態を持っている場合、手動で状態を設定または編集することはできません。

:camera_flash: その他のスクリーンショット

ユーザー状態への設定効果のスクリーンショット

ユーザー状態機能の使用権限は User_status_allowed_groups 設定で付与されます。例えば、test-pilot ユーザーは TL_2purple グループに属しており、ここでは StaffTL_4 と一緒にユーザー状態を設定・表示することが許可されています:


User_status_allowed_groups 設定が変更され、purple グループが設定から削除されるとすぐに、test-pilot ユーザーのユーザー状態機能の使用能力はユーザーメニューと preferences/account ページから削除され、既存のユーザー状態が設定されている場合、次のページリフレッシュ時にクリアされます。ユーザーがグループから削除された場合(または退出を許可されている場合)にも同じ効果が発生します。


私の他のDiscourse関連コンテンツをチェック
「いいね!」 16

素晴らしい出来栄えです!そして、ドキュメントも美しく書かれていますね。試してみるのが楽しみです。

「いいね!」 1

このプラグインを新しい disallowed_groups の細粒度設定で更新しました。これにより、不要な anonymous_userslogged_in_users、および everyone グループが選択できなくなります。Discourse インスタンスを次回更新する際に、自動的に更新されます。

詳細については、以下のトピックをご覧ください:

「いいね!」 3