Wenn Sie ein Administrator sind, geben Sie sich als temporärer Benutzer aus und versuchen Sie, die Benachrichtigung zu löschen. (Whah ha ha!)
Abhilfemaßnahmen
Ein Administrator kann die Nachricht löschen, wodurch die Benachrichtigung gelöscht wird. Der Trick besteht darin, die Benachrichtigung zu finden. Ich verwalte sie mit dieser Abfrage:
-- [params]
-- int :user_id
SELECT *
from notifications
where user_id = :user_id
and high_priority
and not read
Ich glaube nicht, dass der Benutzer die Benachrichtigung selbst löschen kann, da er die PM nicht besuchen kann, selbst wenn er die URL hat.
Mögliche Lösung
Wenn jemand aus einer Konversation entfernt wird, entfernen Sie auch die Benachrichtigung.
Meiner Meinung nach sollte die Benachrichtigung gelöscht/entfernt werden, wenn der Empfänger die Nachricht nicht mehr anzeigen kann. Eine Rückfallebene (die Schaltfläche „Schließen“) ist gut, aber es ist immer noch ein wenig so, als würde man dem Benutzer vorspielen, dass die Benachrichtigung bestehen bleibt. Außerdem schließt die Schaltfläche alles, was der Benutzer möglicherweise nicht möchte. (Obwohl, fairerweise muss man sagen, dass die meisten Leute das Problem nur bemerken, wenn sie alle anderen Benachrichtigungen auf normale Weise gelöscht haben.)
Hallo Jon, es ist zwar eine kleine Unannehmlichkeit, die wir sehr leicht beheben können, aber ich konnte sie nicht reproduzieren:
Die Benachrichtigung im Benutzermenü wird auch entfernt, sobald wir auf die PM klicken (was zu einer Seite „Hoppla! Diese Seite existiert nicht oder ist privat.“ führt, da das Konto keinen Zugriff darauf hat).
Ich habe mit einem Moderator in unserem Produktionssystem getestet und die Seite „Hoppla! Diese Seite existiert nicht oder ist privat.“ hat die Benachrichtigung nicht gelöscht. Aber unser Produktionssystem ist immer noch auf 2.9.0.beta14. Gerade als ich diesen Test auf meinem eigenen Discourse-Server durchgeführt habe, der 3.1.0.beta2 ist, verschwindet die Benachrichtigung, wenn der Empfänger die URL aufruft. Vielleicht wurde dieser Teil des Problems also bereits behoben?
Allerdings sehe ich keine Möglichkeit für den Empfänger, die Nachricht zu sehen, nachdem er aus dem PM-Thread entfernt wurde. Ich könnte die URL außer der Reihe an den Empfänger weitergeben, aber das wird in einer realen Situation wahrscheinlich nicht passieren. Stattdessen erhält der Empfänger eine Benachrichtigung, ohne die URL oder sogar den Initiator zu kennen. Hier ist ein Screenshot eines brandneuen Kontos, das über eine PM benachrichtigt wurde, auf die es keinen Zugriff hat:
Dies ist auf 3.1.0.beta2. Sie können die hinzugefügte Benachrichtigung sehen, wenn Sie ein weiteres Fenster mit der Ansicht des temporären Benutzers geöffnet haben. Aber nach der Entfernung des Benutzers gibt es kein Element zum Auswählen.
Ich sehe „A test pm“ weder im Video noch im Screenshot der Ansicht des Dummy-Benutzers. Ich fand es viel einfacher, mit einem komplett neuen Dummy-Benutzer zu debuggen.
Gestern habe ich diesen gleichen Fehler gemeldet (habe dieses Thema nicht gefunden). Es scheint vom Legacy-Menü abhängig zu sein und war bereits in den neuesten Versionen von 2.8 vorhanden.
Die Problemumgehung mit der Schaltfläche “Alle verwerfen” scheint nicht zu funktionieren, wenn dies die einzige verbleibende Benachrichtigung ist, da die Schaltfläche in diesem Fall deaktiviert ist. Vielleicht funktioniert sie, wenn es mehr Benachrichtigungen gibt – aber dann könnte die Person Dinge verwerfen, die relevant sein könnten.
So wie es ist, werden die Benutzer nur verwirrt und/oder frustriert sein. Die wenigen, die sich beschweren, werden vielleicht angewiesen, die Schaltfläche zu verwenden, aber das funktioniert nur in einigen Fällen. Sollte dies nicht zu Bug verschoben werden?
Ein neues Thema zu ähnlichem Verhalten wurde in Bug mit detaillierteren Anweisungen zu diesem Verhalten eröffnet:
Daher schließe ich dieses als gelöst markierte Thema zugunsten des anderen. Es ist ein kleines Problem, aber es ist in Bug besser aufgehoben, zumal es mehrfach gemeldet wurde.