Lo he probado ahora, pero creo que he detectado un problema durante las pruebas:
Si un usuario no pertenece a ninguno de los grupos permitidos, la nueva comprobación de user_in_copy_button_allowed_groups no devuelve ningún resultado. Por lo tanto, se ejecuta el código de respaldo para los foros que aún no pueden manejar user_in_setting, pero falla:
[THEME 254 'Copy post button'] TypeError: Cannot read properties of undefined (reading 'split')
Pasos para reproducir:
- Instala el componente y añádelo a tu tema
- Limita los allowed_groups a administradores
- Hazte pasar por un usuario de prueba que no sea administrador y revisa la consola del navegador
Creo que el problema está aquí:
if (Object.hasOwn(settings, "user_in_copy_button_allowed_groups")) {
if (settings.user_in_copy_button_allowed_groups) {
return true;
}
}
Esto solo devuelve un valor temprano cuando el valor es true. Cuando es false, se ejecuta el código de respaldo de abajo, que espera que el valor de la configuración siga existiendo como una cadena; pero en mis pruebas con mi componente [1], donde copié el patrón de respaldo de copy-post, es undefined una vez que el soporte de user_in_X está activo. Supongo que la solución es devolver false también en ese caso, para que el respaldo solo se utilice cuando la clave user_in_X no exista en absoluto (núcleo antiguo), y no cada vez que el valor resuelto sea false.
¿Es correcta mi suposición, o se espera que la configuración siga proporcionando los grupos como una cadena?
prefilled composer link ↩︎