Bei der Untersuchung von Private Topics Plugin - #109 by thoka bin ich auf den Umstand gestoßen, dass eine Erwähnung eines Benutzers in einer eingeschränkten Kategorie nicht gemeldet wird, wenn der Benutzername Großbuchstaben enthält.
Wenn ich @SomeUser erwähne, fordert der Editor /composer/mentions.json?names[]=SomeUser&topic_id=10728 an. Im Ergebnis wird der Benutzername in Kleinbuchstaben zurückgegeben, ohne dass user_reasons gesetzt ist.
Eine Abfrage nach dem Benutzernamen in Kleinbuchstaben liefert "user_reasons": {"someuser":"category"}.
Wenn ich im Editor Kleinbuchstaben für Benutzernamen verwende, werden Warnungen für Personen mit unzureichenden Rechten angezeigt.
Verwendet man die vom Editor bereitgestellte Autovervollständigung, werden die eingegebenen Benutzernamen in Kleinbuchstaben durch Namen in Großbuchstaben ersetzt und werden daher nicht gemeldet.
users gibt {"username_lower" => User-Objekt } zurück.
Wenn name jedoch nicht kleingeschrieben wird, existiert users[name] nicht.
Fix:
if user = users[name.downcase]
...
elsif group = groups[name.downcase]
...
Oder besser: Kleinschreibe alle Namen am Anfang der Methode, da es dort viele Probleme gibt. groups macht sauber .where("lower(name) IN (?)", @names.map(&:downcase)), aber Funktionen wie visible_group_ids_for_allowed_check, topic_allowed_group_ids, mentionable_group_ids und members_visible_group_ids verwenden alle where(name: @names), was ebenfalls Probleme mit der Groß-/Kleinschreibung einführt.
Seit dem Neuaufbau von Discourse für die 188 Commits von 645cb014c0 bis 102c93e2ea habe ich eine neue Regression im Markdown-Editor festgestellt.
Dieser Popup-Hinweis hat keine Bedeutung, aber er erscheint jedes Mal, wenn ich versuche, meinen benutzerdefinierten Agenten @Forum_Research_Assis zu erwähnen.
Ich kann dies wie im Video gezeigt konsistent reproduzieren:
Ich bin der Ansicht, dass in diesemselben Commit die Logik fehlt, um zu umgehen, wenn ein Benutzer einen KI-Agenten erwähnt.
Ich würde gerne einen weiteren Pull Request erstellen, sobald du bereit bist, obwohl ich bereits einen offenen Pull Request auf meinem einzigen GitHub-Account habe.