Estoy un poco confundido sobre cómo funciona la visibilidad de los grupos automáticos. Por ahora, solo estoy hablando del directorio /groups.
Esto es lo que veo en una instalación bastante reciente de 2.7.0.beta4:
Si un usuario con permisos de administrador o moderador mira /groups, ve los 8 grupos automáticos (admins, moderators, staff, trust_level_[0-4]).
Si un usuario que no es administrador ni moderador (sin importar el nivel de confianza) mira /groups, solo ve el grupo moderators.
Sin embargo, todos estos grupos tienen la misma configuración de visibilidad predeterminada:
¿Quién puede ver este grupo? Usuarios registrados
¿Quién puede ver los miembros de este grupo? Todos
¿Es así como debería funcionar? ¿O hay algo incorrecto en el manejo de los parámetros de visibilidad para estos grupos?
Lo que hace el código es anular la configuración de visibilidad de los grupos para los grupos automáticos cuando la página de grupos es vista por usuarios que no son personal. Solo se mostrará el grupo de moderadores.
Aunque no está relacionado con el problema, cuando intenté crear un onebox con el enlace de GitHub que publiqué anteriormente, el código se mostró en el onebox sin ningún formato en la vista previa:
Bueno, eso lo explica. Y estoy seguro de que ese código se escribió con las mejores intenciones, pero está roto porque:
Quizás quiero que otros grupos automáticos (además de Moderadores) sean visibles.
La interfaz de administración para grupos automáticos me permite establecer la visibilidad de grupos automáticos que no son de Moderadores, pero esta configuración se ignora.
Sería bastante fácil simplemente eliminar ese bloque de código (y el lindo error tipográfico que ha sobrevivido los últimos 6 años).
Lo complicado, si uno pensara que fuera necesario, sería cambiar la configuración de visibilidad actual para los grupos automáticos a “Propietarios del grupo” para que estos grupos no aparezcan inadvertidamente para todas las instalaciones que están acostumbradas a que se les obligue a ser invisibles. No sé si Discourse tiene algún tipo de mecanismo para realizar tales cambios durante una actualización, pero es el tipo de cosas que uno necesita durante los cambios de esquema, por lo que debe haber algo.
Además: este comportamiento de “simplemente ocultemos los grupos automáticos en el catálogo de grupos a pesar de la configuración de visibilidad” es malo porque oculta los otros aspectos de visibility_level que aún son significativos. Por ejemplo:
El administrador X prueba la configuración de visibilidad y se da cuenta de que los usuarios que no son del personal no pueden ver trust_level_0 en el catálogo de grupos, sin importar qué.
Entonces… el administrador X deja visibility_level y member_visibility_level configurados en “Todos”, ya que esas configuraciones no parecen tener ningún efecto.
El usuario anónimo Z navega a /groups/trust_level_0 y obtiene una lista de todos los usuarios en el sitio.
Quizás al administrador X le importe, quizás no, pero de cualquier manera el administrador X se sorprendería de que fuera posible.
Datos curiosos irrelevantes que no sabía hasta ahora
Distribución de usuarios de meta.discourse por nivel de confianza: