¿Cómo funciona la visibilidad de los grupos automáticos?

I’m a bit confused as to how the visibility of automatic groups works. At this point, I am just talking about the /groups directory.
Here is what I am seeing in a pretty fresh install of 2.7.0.beta4:

  • If an user with admin or moderator bits looks at /groups, they see all 8 automatic groups (admins, moderators, staff, trust_level_[0-4]).
  • If a non-admin, non-moderator user (no matter the trust_level) looks at /groups, they see only the moderators group.

But, all of these groups have the same, default Visibility settings:

  • Who can see this group? Logged on users
  • Who can see this group’s members? Everyone

Is this how it is supposed to work? Or is there something wrong with the handling of the Visibility parameters for these groups?

5 Me gusta

There is a comment in the code that explains what is going on: “hide automatic groups from all non stuff to de-clutter page.” That happens here: discourse/app/controllers/groups_controller.rb at main · discourse/discourse · GitHub.

What the code is doing is overriding the group visibility settings for automatic groups when the groups page is viewed by a non-staff users. Only the moderators group will be displayed.

Unrelated to the issue, but when I tried to onebox the Github link that I posted above, the code was displayed in the onebox without any formatting in the preview:

3 Me gusta

Bueno, eso lo explica. Y estoy seguro de que ese código se escribió con las mejores intenciones, pero está roto porque:

  1. Quizás quiero que otros grupos automáticos (además de Moderadores) sean visibles.
  2. 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:

Nivel # usuarios
TL0 45.942
TL1 29.226
TL2 3.620
TL3 124
TL4 102

Hola mdoggydog :slight_smile:

Algunos puntos me parecen válidos, como:

Lo cual es confuso.

Te invito a crear un tema de Feature con tus sugerencias :slight_smile:

¡Hecho!

2 Me gusta

Conversación continuó en: Respect the visibility settings of all automatic groups