会話から別のユーザーを削除すると、クリアできない通知が発生します

再現方法

  1. 一時ユーザーを作成します。(プラス記号トリックが使えることを忘れないでください。つまり、username+whatever@gmail.com のようにします。)
  2. 一時ユーザーにメッセージを送信します。(これにより、高優先度通知が作成されます。)
  3. 個人メッセージから一時ユーザーを削除します。(あなたのスペルが私のものより良いことを願っています。)
  4. 管理者である場合は、一時ユーザーになりすまして通知をクリアしてみてください。(ワハハ!)

緩和策

管理者はメッセージを削除することで、通知をクリアできます。問題は通知を見つけることです。私はこのクエリを使用して管理しています。

-- [params]
-- int :user_id 

SELECT * 
from notifications 
where user_id = :user_id
      and high_priority
      and not read

ユーザーはURLを持っていてもPMにアクセスできないため、自分で通知をクリアすることはできないと思います。

可能な解決策

会話から誰かが削除されたときに、通知も削除します。

「いいね!」 1

では、誰かを削除すると通知が届きますが、それを削除すると届かないということですか?

「いいね!」 1

ユーザーは通知メニューの「Dismiss」ボタンをクリックするだけでよいですか?

「いいね!」 5

ああ、まったく。そんなボタンがあることすら知りませんでした。存在を知っていれば、通知はクリアされます。

「いいね!」 3

なるほど、言っていることがわかりました。

「いいね!」 2

伝えるべきこととして、受信者がメッセージを表示できなくなった場合、通知は削除/クリアされるべきだと私はまだ考えています。「却下」ボタンというバックストップがあるのは良いことですが、通知が残り続けるのは、ユーザーをガスライティングしているようなものです。さらに、ボタンはすべてを却下するため、ユーザーが望むものではない可能性があります。(ただし、公平を期すために言えば、ほとんどの人は、通常の手段で他のすべての通知をクリアした場合にのみ問題に気づくでしょう。)

「いいね!」 2

ジョンさん、こんにちは。これは非常に簡単に解消できる些細な不便ですが、再現できませんでした。

ユーザーメニュー内の通知も、PM(アカウントがアクセス権を持たないため、「おっと!そのページは存在しないか、プライベートです。」というページに遷移します)をクリックするとすぐに削除されます。

再現手順で何か見落としたことはありますか?

「いいね!」 2

本番システムでモデレーターとテストしたところ、「おっと!このページは存在しないか、非公開です。」というページでは通知はクリアされませんでした。しかし、本番システムはまだ2.9.0.beta14です。先ほど、私のDiscourseサーバー(3.1.0.beta2)でテストしたところ、受信者がURLにアクセスしようとすると通知は消えました。もしかしたら、その部分の問題はすでに修正されたのかもしれません。

しかし、受信者がPMスレッドから削除された後にメッセージを表示する方法が見つかりません。URLを受信者に帯域外で渡すことはできますが、実際の状況では起こりにくいでしょう。代わりに、受信者は通知を受け取っても、URLを知る方法も、誰が開始したかを知る方法もありません。アクセスできないPMの通知を受けたばかりの、完全に新しいアカウントからのスクリーンショットを以下に示します。

これは3.1.0.beta2での状況です。一時的なユーザーのビューで別のウィンドウを開いていると、追加された通知を確認できます。しかし、ユーザーが削除された後には選択できる項目がありません。

PM

ビデオまたはダミーユーザーのビューのスクリーンショットのいずれにも、「A test pm」が表示されていません。完全に新しいダミーユーザーでデバッグする方がはるかに簡単でした。

「いいね!」 2

アバターメニューの通知にもリンクされているレガシー通知メニューを使用しています。
レガシー通知メニューで問題を再現できます。
通知は確かに再構築されており、レガシー通知メニューは将来的にサポートされなくなり、削除されます。

ナビゲーションメニュー設定を「サイドバー」または「ヘッダー ドロップダウン」に設定することをお勧めします。 :slight_smile:

「いいね!」 2

昨日、この同じバグを報告しました(このトピックは見つけられませんでした)。レガシーメニューナビゲーションに依存しているようで、2.8の最新バージョンでもすでに存在していました。

「すべてDismiss」ボタンの回避策は、それが残っている唯一の通知である場合、ボタンが無効になるため機能しないようです。おそらく、通知が複数ある場合は機能するかもしれませんが、その場合、関連性のあるものを却下してしまう可能性があります。

現状では、ユーザーは混乱したり、イライラしたりするだけです。苦情を言う少数のユーザーは、ボタンを使用するように言われるかもしれませんが、それは一部のケースでしか機能しません。これは#bugに移動すべきではないでしょうか?

「いいね!」 1

Bug で類似の動作に関する新しいトピックが、より詳細な手順とともに開設されました。

そのため、こちらを解決済みとして閉じ、他のトピックに統合します。軽微な問題ですが、複数回報告されているため、Bug に含めるのがより適切だと考えられます。

「いいね!」 3