Le lettere maiuscole nel nome utente interrompono il controllo dei menzioni raggiungibili nel compositore

Mentre investigavo su Private Topics Plugin - #109 by thoka, ho scoperto che un menzione a un utente in una categoria ristretta non viene segnalata quando il nome utente contiene lettere maiuscole.

Se menziono @SomeUser, l’editor richiede
/composer/mentions.json?names[]=SomeUser&topic_id=10728
nel risultato il nome utente viene restituito in minuscolo, senza che user_reasons sia impostato.

Una query per il nome utente in lettere minuscole restituisce "user_reasons": {"someuser":"category"}.

Se utilizzo lettere minuscole per i nomi utente nell’editor, vengono mostrati avvisi per gli utenti con privilegi insufficienti.

Se si utilizza il completamento automatico fornito dall’editor, i nomi utente digitati in minuscolo vengono sostituiti da nomi in maiuscolo e quindi non vengono segnalati.

3 Mi Piace

Ottima individuazione @thoka!

Il problema è qui

users restituisce {"username_lower" => oggetto User }

Tuttavia, se name non è convertito in minuscolo, users[name] non esiste.

Fix:

if user = users[name.downcase]
...
elsif group = groups[name.downcase]
...

O ancora meglio: converti tutti i nomi in minuscolo all’inizio del metodo, dato che ci sono molti problemi lì dentro. groups gestisce correttamente .where("lower(name) IN (?)", @names.map(&:downcase)), ma funzioni come visible_group_ids_for_allowed_check, topic_allowed_group_ids, mentionable_group_ids e members_visible_group_ids eseguono tutte where(name: @names), il che introduce anch’esso problemi di sensibilità alle maiuscole/minuscole.

3 Mi Piace

La correzione corretta è

ma è un cambiamento troppo grande per essere accettato in questo momento :grimacing:

Invece, correggerò ogni “endpoint” uno alla volta per rendere la revisione più semplice e meno rischiosa.

Ecco il primo passo

7 Mi Piace

Dopo aver ricostruito Discourse per i 188 commit da 645cb014c0 a 102c93e2ea, ho notato una nuova regressione nell’editor Markdown.

Questo popup non ha alcun significato, ma appare ogni volta che provo a menzionare il mio agente personalizzato @Forum_Research_Assis.

Riesco a riprodurre costantemente il problema come mostrato nel video di riproduzione,

Credo che lo stesso commit manchi della logica per bypassare la situazione quando l’utente menziona un agente AI.

Sono felice di aprire un’altra pull request quando sei pronto, anche se ne ho già una aperta sul mio unico account GitHub.

1 Mi Piace

Sembra che la mia “correzione” abbia rivelato questo problema per gli Agenti AI :thinking:

3 Mi Piace