Permisos granulares basados en grupos para usuarios anónimos y con sesión iniciada

Históricamente ha existido un pseudogrupo confuso llamado @everyone en nuestra base de código, que se puede utilizar para:

  • Configuraciones del sitio del tipo group_list
  • Permisos de categorías
  • Grupos de etiquetas

En algunos casos, algunas personas interpretan @everyone como “todos los usuarios anónimos y todos los usuarios con sesión iniciada”, mientras que otras lo interpretan solo como “todos los usuarios con sesión iniciada”. La realidad para las configuraciones del sitio es que, en la mayoría de los casos, solo significa “todos los usuarios con sesión iniciada”.

Aún más confuso es el hecho de que este grupo @everyone pueda usarse en configuraciones del sitio donde no tiene sentido que “todos los anónimos y usuarios con sesión iniciada” tengan acceso a la función, como pm_tags_allowed_for_groups.

Esto también genera confusión desde la perspectiva de la gestión de características y la experiencia del desarrollador, ya que para algunos cambios próximos u otras configuraciones, podríamos realmente querer habilitarlas para “todos los anónimos y usuarios con sesión iniciada”.

Solución

Estamos introduciendo dos pseudogrupos automáticos separados:

  • anonymous (ID 4) - Representa a los usuarios anónimos que visitan tu sitio sin cuenta.
  • logged_in_users (ID 5) - Representa a todos los usuarios con sesión iniciada en tu sitio, con un efecto similar al grupo automático trust_level_0, pero más específico.

Estos ya han sido introducidos, pero solo entrarán en vigor cuando se habilite el cambio próximo granular_anonymous_and_logged_in_groups_permissions en tu sitio.

Cuando se habilite el cambio próximo, cualquier configuración con everyone como grupo seleccionado se traducirá automáticamente al ID logged_in_users, por lo que no se modificarán los datos en la tabla de configuraciones del sitio al activar el cambio próximo. Cuando el cambio próximo se vuelva permanente, realizaremos una migración de datos para todas las configuraciones de grupos para aplicar este cambio.

Además, hemos marcado anonymous como un disallowed_group para varias configuraciones del sitio donde no tiene sentido, por ejemplo personal_message_enabled_groups.

¿Qué pasa con los permisos de etiquetas y categorías?

Estos permisos permanecerán sin cambios, ya que su concepto de “todos” es diferente en varios aspectos y no depende del grupo automático subyacente.

3 Me gusta

Espera… ¿qué? :flushed_face: ¿Eso significa que todas las categorías que ahora son públicas (para todos) se cambiarán a cerradas, requiriendo inicio de sesión, cuando eso esté habilitado?

No, porque:

Esto solo afecta a los ajustes del sitio de tipo lista de grupos que actualmente permiten seleccionar “todos” de la siguiente manera:

1 me gusta