トピックが削除され続ける

私のサイトにあるトピックについて、ある人(X と呼ぶことにします)が投稿した後、誤った情報があったため削除しました。私はそれを復元し、X に元の投稿の下に訂正を投稿するよう依頼しました。

それ以来、そのトピックは繰り返し削除されています。私は二度復元しましたが、一見問題なさそうに見えますが、少し経つと再び削除された状態として表示されます。

何が起きているのでしょうか?

「いいね!」 5

該当するユーザーがそれを削除し続けている可能性はありませんか?私は、自分を正すという「恥」に耐えるよりも、投稿を削除することを選ぶユーザーに何度か遭遇しました。

「いいね!」 1

ログ(admin/logs/staff_action_logs)を確認して、ユーザーがそれらを削除していないか確認してください。ログには、編集されかつ削除された投稿、そして誰が削除したかが表示されます。さらに詳しい情報は、情報アイコンをクリックすることもできます。

投稿を維持することについて考えを改めたユーザーもいますし、他にも多くの理由があります。時には、言おうとしていたことを忘れさせたほうが良いと感じるような状況もあります。理由が明示されなくても、その理由を受け入れるしかない場合もあります。:wink:

「いいね!」 4

ただし、ユーザーはトピックや投稿を即座に削除することはできません。できるのは、トピックや投稿に「24時間後に削除する」という公開された意図を示す保留削除をトリガーすることだけです。例えば以下のようになります:

(投稿者は投稿を撤回しました。フラグが付けられない限り、24時間後に削除されます)

さらに、トピックに対してこの操作を行えるのは、返信が一切なく、かつトピックの作成から1日以内の場合に限られます。

「いいね!」 5

システムによってトピックが削除された場合も、私たちには同じことが起こります。つまり、投稿者が投稿を削除してから 24 時間が経過すると、それを復元する方法はありません。たとえ復元しても、30 分後に自動的に再度削除されてしまいます。

「いいね!」 5

ユーザーとお話ししたところ、私の理解では、彼らがそれを絶えず削除しているわけではないようです。むしろ、彼らはその事実に驚いており、そもそも私に問題を報告してくれたのは彼らです。

私のログは以下のようになっています:

@JimPas の提案に感謝します!)

何かアイデアはありますか?問題のトラブルシューティングに役立つ追加データを提供できますか?@Pad_Pors も同様の状況に遭遇した可能性があります。

「いいね!」 3

その後、この問題の解決策が見つかりましたか?私たちも同じ現象に直面しています。

ユーザーが投稿を作成して削除し、その復元を求めましたが、システムがそれを(最初の投稿であるため、トピック全体を)繰り返し削除しています。

内容を新しいトピックに移動することはできますが、元の URL を追跡しているユーザーは「ページが見つかりません」ページに誘導されてしまいます。

「いいね!」 5

今月月曜日にこれを再現できますか @tshenry

「いいね!」 5

@AstonJ さん、こんにちは

再現手順の確認をお願いできますか?現在私がテストしている手順は以下の通りですが、これで正しいかご確認いただけますでしょうか?

  1. ユーザーがトピックを作成
  2. ユーザーがトピックを削除
  3. トピックが「削除予定」ステータスになる:
  4. 24 時間後にトピックが自動的に削除される
  5. ユーザーがスタッフにトピックの復元を依頼
  6. スタッフが削除されたトピックを見つけ、復元する
  7. 復元後にシステムが再度削除する

もし私が行うべき手順に違いがある場合は、お知らせください。

「いいね!」 2

こんにちは、テイラーさん。このトピックは4月に投稿されましたが、以下のようなことが起こったようです:

  1. ユーザーが「送信」ボタンを押してトピックを作成(ユーザーは編集できないと言っていたトピックテンプレートが投稿される)
  2. ユーザーが2番目の投稿にコンテンツを投稿し、その後最初の投稿を削除
  3. 最初の投稿が「削除予定」ステータスに移行
  4. ユーザーがスタッフに問い合わせ、トピック全体が消えてしまうのではないかと心配
  5. スタッフが最初の投稿を復元し、2番目の投稿の内容をコピーして最初の投稿に貼り付け、その後2番目の投稿を削除
  6. トピックは4月8日から4月17日までの投稿と共にアクティブな状態になる
  7. その後のある時点でシステムがトピックを削除(正確な時期は不明) 編集: モデレーターによれば、システムは7月7日にトピックを削除したとのこと

ユーザーが昨日自分のトピックがどこにあるのかと質問して初めて、この問題が起きていることに気づきました。

他に必要な情報があればお知らせください(参考までに、このトピックが繰り返し削除されているのはこちらです:this)。

「いいね!」 4

ええと、ステップ1で何が起こっているのか完全に理解できていませんが、結論としてユーザーがトピックを作成したと仮定すると、ステップ2は不可能のようです。通常のユーザーとしてトピックを作成し、それに対して返信した後、最初の(トピックの)投稿を削除しようとすると、最初の投稿は削除対象としてマークされません。これは仕様によるものです。

「いいね!」 3

私の場合は次のようになりました:

  1. ユーザーがトピックを作成
  2. 削除
  3. 復元
  4. しばらく経ってから再度削除

正確な時間については確信がありません。

「いいね!」 4

私も同様のことが何度か起こったことを確認しました。

「いいね!」 2

私の理解では、スタッフが通常ユーザーのスレッドに対して「削除を元に戻す」ボタンを持っているのは、スレッドが削除予定に設定されている場合のみです。投稿を削除予定に設定している間は、元の投稿者だけが投稿を元に戻すことができます。「削除を元に戻した」とおっしゃるのは、自動削除が実行された後という意味でしょうか?

「いいね!」 1

ああ、そうね、ごめんねテイラー!たぶん最初の投稿を削除して、2 番目の投稿を作成したんだと思う。記憶が正しければ、それは可能だったはずだよ。

「いいね!」 1

以下が私の提案です:

  1. ユーザーがトピックを作成
  2. ユーザーがトピック投稿を削除し、削除をスケジュール(delete_removed_posts_after サイト設定を 1 に変更しました)
  3. 指定された時間後にトピックが削除される
  4. スタッフがトピックを復元し、投稿の元のバージョンに戻す(「著者によってトピックが取り下げられ、フラグが付けられない限り1時間後に自動的に削除されます」というメッセージ付きで投稿を戻すには、復元のみが必要です)
  5. 一定時間後にトピックが再度削除される

何が起きているか: ユーザーが自身のトピック投稿を削除すると、user_deleted というプロパティが true に設定されます。DestroyOldDeletionStubs というバックグラウンドジョブが30分ごとに実行されます。このジョブは PostDestroyer.destroy_stubs 関数を実行し、データベースを検索して user_deletedtrue に設定され、かつ「削除タイマー」が期限切れになった投稿を削除します。

問題点: スタッフが投稿を復元しても、user_deletedfalse に設定されないため、次に DestroyOldDeletionStubs が実行された際に投稿が再度削除されてしまいます。

解決策: staff_recovered 関数に、user_deletedfalse に設定するロジックを追加する必要があると思います(user_recovered はすでにこれを行っています)。詳細は discourse/lib/post_destroyer.rb at main · discourse/discourse · GitHub をご覧ください。

簡易的な対処法: トピック投稿を復元し、その投稿IDを取得した後、Railsコンソールにアクセスして以下のコマンドを実行します:

Post.find_by_id(POST_ID).update(user_deleted: false)

投稿IDは、トピックURLの末尾に .json を追加することで簡単に取得できます。例えば、このトピックの場合:https://meta.discourse.org/t/topic-keeps-getting-deleted/128013.json。トピック投稿IDは 632362 です。

「いいね!」 10

なるほど、@eviltrout の修正が必要ですね。

素晴らしい探偵ワーク、@tshenry

「いいね!」 6

よくできました、Taylor :slight_smile:

上記の操作が必要な他の人のために、まず投稿/トピックを復元する必要があります。そうしないと、find は nil を返します。

「いいね!」 4

依然としてこの現象が発生しています。user_deletedfalse に設定する作業は進展しましたか?

ホスト型インスタンス向けの簡易的な修正や回避策はありますか?

「いいね!」 2

私の提案は以下の通りです:

  • ユーザーをスタッフに昇格させる
  • そのユーザーになりすます
  • 該当の投稿を復元する
  • ユーザーからスタッフ権限を剥奪する
「いいね!」 2