Usuarios no administradores pueden aplicar etiquetas solo para administradores

Actualicé nuestro sitio ayer y acabo de notar que un usuario que no es del personal aplicó nuestra etiqueta ‘destacado’ a su publicación. Esto no debería ser posible, ya que está definida como una etiqueta exclusiva para el personal. Cuando asumí su identidad, efectivamente pude acceder a las etiquetas restringidas al publicar. Intenté reproducirlo aquí en meta, pero creo que las etiquetas no están disponibles para los usuarios regulares.

He intentado reproducir el problema en mi sitio de desarrollo local, pero hasta ahora no he tenido éxito. ¿Sabes si el problema ocurre en todas las categorías de tu sitio o solo en una categoría específica donde los usuarios no pertenecientes al personal pueden agregar etiquetas de personal? Cualquier indicio sobre cómo reproducir el problema sería útil.

De acuerdo, profundizaré un poco más para ver qué está pasando aquí y te volveré a contactar. Sin embargo, puede llevar un poco de tiempo.

Bien, probé con un usuario TL-0 y otro TL-1 en modo seguro y puedo acceder a la etiqueta de personal en todas las categorías de nuestro foro. Lo mismo ocurre con las demás etiquetas de nuestra lista exclusiva para el personal. También restablecí los permisos del grupo de etiquetas «solo para el personal» a «las etiquetas pueden ser utilizadas por todos» y luego volví a cambiarlos a «solo los siguientes grupos pueden utilizarlas», pero eso no marcó ninguna diferencia. ¿Hay algo más que pueda probar?

¿Tienes definidos otros grupos de etiquetas, o la captura de pantalla anterior es el único grupo en tu sitio? ¿Los usuarios con los que probaste esto son miembros de algún otro grupo?

Es posible crear varios grupos de etiquetas con reglas contradictorias. Si un usuario tiene permiso para usar una etiqueta en cualquier grupo de etiquetas, eso anulará las reglas de cualquier otro grupo que diga que no puede usarla.

Estos son todos los grupos que utilizo; la prueba que realicé fue con un usuario básico que no es miembro de nada.

Etiquetas comunes: disponibles para todos

Eventos: solo se pueden usar en la categoría de Eventos:

Cuando dices ‘acceder’, ¿te refieres a que puedes agregarlas a los temas, o a que puedes verlas y hacer clic en ellas, etc.?

Las etiquetas en tu grupo de etiquetas ‘Etiquetas de personal’ (ba-tips, cant-reproduce, featured, etc.) solo pueden ser agregadas a los temas por usuarios que pertenezcan al grupo staff, pero son visibles para todos. Esto significa que cualquiera puede ver esas etiquetas en la parte superior de los temas, hacer clic en la etiqueta para ver otros temas etiquetados con ella, etc.

Si un usuario TL0 puede agregar una etiqueta de ‘Etiquetas de personal’ (por ejemplo, ‘ba-tips’) a un tema, eso es un problema. He recreado las etiquetas/grupos de etiquetas según tus capturas de pantalla en mi instancia local de Discourse (limitando las etiquetas en cada grupo a las primeras tres en cada una de las capturas de pantalla anteriores), y mis usuarios TL0/TL1 no pueden agregar ‘ba-tips’ a un tema mediante el botón ‘Nuevo tema’, ni creando un tema y luego editándolo. ¿Puedes agregar las etiquetas mediante un método o ruta de interfaz diferente?

Gracias por tu respuesta, Jamie. Lo siento si no fui lo suficientemente específico. Acabo de actualizar a la última versión y ejecuté la prueba nuevamente, con el mismo resultado. Los pasos para reproducir el error son:

  1. Iniciar sesión como usuario TL0 o TL1
  2. Cambiar al modo seguro y desactivar todo
  3. Seleccionar cualquier categoría
  4. Crear un nuevo tema
  5. Seleccionar la etiqueta Destacado, que es solo para personal.
  6. Hacer clic en ‘crear tema’
  7. El mensaje se crea y se agrega la etiqueta destacada

Acabo de ver algo más que podría estar relacionado: ya no puedo acceder a las rutas de tag.json, como esta:

Topics tagged featured

Actualización: ¡ups, olvídalo! Parece que /tags/ se renombró a /tag/, lo que rompió algunas de nuestras automatizaciones.

Desafortunadamente, sigo teniendo dificultades para crear un caso de prueba para este problema. Estos son los pasos que he seguido:

  1. Creé un nuevo sitio en el commit: 6490fac881
  2. Creé el usuario administrador: jamie.wilson
  3. Activé la configuración del sitio: tagging enabled
  4. Creé las siguientes etiquetas:
    360-renders
    add-ons
    advertisement
    conference
    contest
    meetup
    no-ads
    promotion-offered
    ba-tips
    cant-reproduce
    featured
  5. Creé los grupos de etiquetas, según las capturas de pantalla proporcionadas (con un máximo de 3 etiquetas por grupo con fines de depuración)
  6. Creé la categoría ‘Events’, con el valor ‘Events’ para ‘Restrict these tag groups to this category’
  7. El usuario administrador creó un tema en la categoría ‘Site Feedback’ con la etiqueta ‘ba-tips’ del grupo staff.
  8. Cerré la sesión del usuario administrador
  9. Creé un nuevo usuario (activado mediante enlace por correo electrónico): normal.user
  10. Como normal.user, creé un nuevo tema en Uncategorized o Site Feedback. Etiquetas disponibles: 360-renders, add-ons, advertisement

  1. Creé un nuevo tema en Events. Etiquetas disponibles: conference, contest, meetup

(no mostrado)

  1. El usuario administrador puede agregar etiquetas restringidas a la publicación de normal.user:

  1. El usuario administrador puede ver las tres etiquetas:

  1. normal.user solo puede ver dos etiquetas:

DiscourseTagging.permitted_tag_names(Guardian.new(User.find_by_username('normal.user')))
["360-renders", "add-ons", "advertisement", "conference", "contest", "meetup"]
DiscourseTagging.hidden_tag_names(Guardian.new(User.find_by_username('normal.user')))
["no-ads", "promotion-offered"]

¿Quizás alguien más pueda reproducir el problema? Yo no he podido hasta el momento.

Creo que he encontrado el problema: #featured aparecía tanto en la lista de personal exclusivo como en nuestra lista de ‘etiquetas comunes’. No estoy seguro de cómo terminó ahí; tendré que revisar nuestros permisos de personal y ver si lo crearon de alguna manera. Perdón por hacerte perder el tiempo, pero ¡aprecio mucho tu ayuda! :pray:

¡No hay problema! Me alegra que se haya encontrado la causa raíz y que ahora todos podamos sentirnos un poco más seguros de que la nueva función funciona como se esperaba.

Espero que te sea útil para ti y tu sitio ahora que se han corregido los problemas de configuración. Avísanos cómo te va.