Las mayúsculas en el nombre de usuario rompen la verificación de mención accesible en el editor

Al investigar Private Topics Plugin - #109 by thoka, descubrí que una mención a un usuario en una categoría restringida no se reporta cuando el nombre de usuario contiene letras mayúsculas.

Si menciono @SomeUser, el editor solicita
/composer/mentions.json?names[]=SomeUser&topic_id=10728
y en el resultado el nombre de usuario se devuelve en minúsculas, sin que user_reasons esté establecido.

Una consulta para el nombre de usuario en minúsculas devuelve "user_reasons": {"someuser":"category"}.

Si uso letras minúsculas para los nombres de usuario en el editor, se muestran advertencias para personas sin derechos suficientes.

Si se utiliza la autocompletación proporcionada por el editor, los nombres de usuario en minúsculas escritos se reemplazan por nombres en mayúsculas y, por lo tanto, no se reportan.

3 Me gusta

¡Buen hallazgo @thoka!

El problema está aquí

users devuelve {"username_lower" => objeto de usuario }

Sin embargo, si name no está en minúsculas, users[name] no existe.

Solución:

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

O mejor: convierte todos los nombres a minúsculas al inicio del método, ya que hay muchos problemas allí. groups maneja bien .where("lower(name) IN (?)", @names.map(&:downcase)), pero funciones como visible_group_ids_for_allowed_check, topic_allowed_group_ids, mentionable_group_ids y members_visible_group_ids usan where(name: @names), lo que también introduce problemas de sensibilidad a mayúsculas y minúsculas.

3 Me gusta

La corrección adecuada es

pero es un cambio demasiado grande para que me sienta cómodo fusionándolo en este momento :grimacing:

En su lugar, voy a corregir cada “endpoint” uno por uno para facilitar la revisión y reducir los riesgos.

Este es el primer paso

7 Me gusta

Desde que reconstruí Discourse para los 188 commits desde 645cb014c0 hasta 102c93e2ea, he notado una nueva regresión en el editor de Markdown.

Esta ventana emergente no significa nada, pero aparece cada vez que intento invocar a mi agente personalizado @Forum_Research_Assis.

Puedo reproducir esto consistentemente, como se muestra en el video de reproducción:

Creo que este mismo commit carece de la lógica necesaria para omitir la acción cuando el usuario menciona a un agente de IA.

Estoy encantado de iniciar otra solicitud de extracción cuando estés listo, aunque ya tengo una abierta en mi única cuenta de GitHub.

1 me gusta

Parece que mi “solución” ha revelado este problema para los agentes de IA :thinking:

3 Me gusta