スタッフ行動ログのメッセージをモデレーターが閲覧

モデレーターがアクセスすべきではないメッセージにアクセスできるというプライバシー上の問題が発生しています。

私の理解では、Discourse にはここで関与する 2 つの設計目標があります。

  1. モデレーターは権限チェックの対象外ではなく、招待されたメッセージのみを読み取ることができます。
  2. モデレーターが権限を行使すると、その行動はすべてログに記録され、スタッフ全員が確認できます。

場合によっては、これらが矛盾することがあります。例えば、モデレーターがメッセージ内の他のユーザーの投稿を編集する場合などです。このような場合、Discourse は :two: を優先します。つまり、編集されたユーザーの投稿はスタッフアクションログで全スタッフに公開されます。

私はすでに :two: を優先する決定には同意していませんが、これには明らかに望ましくない、むしろバグに近いコーナーケースが存在します。最も深刻な問題は、@system が外部画像のリンクを含むすべてのメッセージをダウンロードし、投稿を編集することで、そのアクションがスタッフアクションログに記録され、結果としてモデレーターがそのすべてのメッセージを読み取れてしまうことです。

ここで正しい対応策が何かは確信が持てません。モデレーター向けのスタッフアクションログへのアクセスを設定可能にするのか?@system からのスタッフアクションログエントリに対して投稿の表示を許可しないのか?投稿の表示機能を一般的に投稿の権限を尊重するようにするのか?

いずれにせよ、何か変更がなされることを願っています。現在、私たちは Nginx レベルでスタッフアクションログ API へのアクセスをブロックせざるを得ない状況だからです。

「いいね!」 9

そのような編集はログに記録されるべきではないと思います。

@david @system ユーザーからの非常に特定の編集がログに記録されないようにしてください(既存のものも削除してください)。

「いいね!」 10

これは FIX: Do not log 'pull_hotlinked_images' edits in the staff action log · discourse/discourse@67a9894 · GitHub で対応済みです。

なお、モデレーターは、投稿者以外が編集したプライベートメッセージのログは引き続き確認できます。

これは自動化が難しい問題です。既存のログが「ホットリンク画像の取得」によるものか、システムユーザーとして API を介して編集されたものかを判別する方法がありません。@fefrei もしあなたのサイト上のすべてのシステム編集に関する古いログを削除したい場合は、コンソールで以下のようなコマンドを実行してください。

UserHistory.where(action: UserHistory.actions[:post_edit], acting_user: Discourse.system_user).destroy_all
「いいね!」 9

ありがとうございます! :heart:

「いいね!」 5