El panel lateral no muestra una categoría, aunque esté especificada en las categorías del menú de navegación predeterminado

Configuré 2 categorías:

  • una categoría School_A que es privada para un grupo específico group_School_A
  • una categoría Support que es privada para usuarios con Trust Level 0

Configuré la opción Default navigation menu categories para que incluya School_A y Support, pero en el panel lateral solo aparece School_A para los usuarios que pertenecen a group_School_A.

Para acceder a Support, todavía tenemos que hacer clic en All categories y seleccionar Support.

Si configuro la categoría Support para que sea privada para group_School_A, sigo teniendo el mismo problema.

¿Alguien podría ayudarme a entender qué estoy haciendo mal?

Gracias

¿Cómo lo probaste? ¿Creaste un nuevo usuario de prueba? Los usuarios también pueden personalizar las categorías que se muestran en su barra lateral. Esto puede impedir que un valor predeterminado nuevo se aplique a los usuarios existentes. ¿Es posible que los usuarios añadan la categoría manualmente?

Efectivamente, ese podría ser el problema.

Estoy probando con un usuario ficticio, pero que fue creado antes de que hiciera el cambio.

Si hago clic en el botón del lápiz para la Categoría, puedo ver ambas categorías y Support sin marcar.

Pero la pregunta entonces sería: ¿cómo aplicar la nueva configuración a los usuarios existentes?
¿Hay alguna API que pueda usar?
Los usuarios crearon su cuenta hace una semana (así que no ha pasado mucho tiempo para personalizarla) y solo me di cuenta hoy del problema con la barra lateral y la categoría que no se veía.
Si les pido a los usuarios que realicen una operación, la mayoría no lo entenderá y los demás lo ignorarán…

¡Muchas gracias!

Al cambiar la configuración del sitio, puedes elegir si deseas aplicarla a los usuarios existentes.

Por lo tanto, deberías poder eliminar support y school_a de la configuración y guardar sin aplicar ese cambio a los usuarios existentes. Luego, esperas unos minutos y los vuelves a agregar. Esta vez, aplica el cambio a los usuarios existentes. (No te asustes por el recuento, podría estar incorrecto porque estás agregando más de una categoría)

Hay una guía aquí, pero se centra en anular cualquier personalización y aplicar la misma barra lateral para todos: How to set the same sidebar categories for all the users.

Creo que ya lo he aplicado a los usuarios existentes.

Pero lo intenté de nuevo:

  • Cuando elimino todas las categorías de default navigation menu categories, me pregunta si quiero aplicarlo a los usuarios existentes. Respondo No.
  • Esperé unos minutos.
  • Las vuelvo a añadir, pero esta vez no me pregunta si aplicar los cambios a los usuarios existentes.
  • Revisé la barra lateral y Support sigue sin estar marcado (aunque está presente).
  • Intenté añadir una categoría ficticia a default navigation menu categories para forzar la pregunta sobre la aplicación a usuarios existentes. Esta vez apareció el aviso y respondí Sí.
  • Volví a revisar la barra lateral y Support sigue sin estar marcado.

Parece que hay algún problema con apply this change historically, ¿no?

Actualización: Lo volví a intentar vaciando default navigation menu categories, aplicándolo a los usuarios existentes, esperando unos minutos, añadiendo las categorías de nuevo y aplicándolo otra vez a los usuarios existentes, y esta vez ¡funcionó!

Muchas gracias

Mmm. Tiene sentido que la opción no se ofrezca si todos los usuarios ya tienen la categoría en su barra lateral.

Podrías aplicar el paso de eliminar la categoría a todos. Después, al añadirla, debería activarse el modal «Aplicar a usuarios existentes». Pero esto podría resultar confuso para los usuarios que actualmente están usando el foro.

También puedes revisar la configuración actual usando el explorador de datos. Esta consulta te permite seleccionar una categoría y un grupo, y devuelve para cada miembro del grupo si tiene la categoría en su barra lateral.

-- [params]
-- group_id :group
-- category_id :category

SELECT
    u.id AS user_id,
    CASE WHEN sl.id IS NULL THEN 'No' ELSE 'Sí' END AS category_added_to_sidebar
FROM users u
JOIN group_users gu ON gu.user_id = u.id
LEFT JOIN sidebar_section_links sl
    ON sl.user_id = u.id
    AND sl.linkable_type = 'Category'
    AND sl.linkable_id = :category
WHERE gu.group_id = :group
ORDER BY category_added_to_sidebar ASC

El resultado se ve así:

Solo tengo unos pocos usuarios que se unieron recientemente, así que no fue un problema eliminar las categorías y volver a aplicarlas (estoy bastante seguro de que nadie tuvo tiempo de personalizar el panel lateral).

Ahora parece que funciona, ¡muchas gracias por tu ayuda!