Me pregunto si es posible habilitar la edición de texto en grupos más allá de los administradores. ¿Moderadores al menos?
Queremos usar un tono diferente y usar nuestras propias palabras en nuestra comunidad, para obtener un cierre con nuestros usuarios.
2 Me gusta
Puedes dar permiso a grupos para editar publicaciones hechas por otros cambiando la configuración del sitio Grupos de edición de todas las publicaciones, ¿es esto lo que buscas?
1 me gusta
Hola, gracias por tu respuesta. Estoy buscando habilitar las ediciones de texto de Discourse (también conocidas como localización, cadenas de idioma) 
Entiendo que actualmente solo está habilitado para administradores, y creo que es una función más factible para moderadores/editores.
1 me gusta
oh gracias por aclarar, esto no es posible actualmente
Okay, comparto la respuesta de Discourse Helper para aquellos que estén interesados y tengan el conocimiento para hacerlo 
Creo que es esencial mejorar la UI/UX (modernizar nuestros foros), como el composer, la IA y las últimas mejoras que hemos visto.
El inglés utilizado es súper neutral/plano y tiene sentido, pero -en mi caso- las traducciones al español no son buenas por defecto.
Editar cadenas en la UI de Discourse está bien, pero lleva mucho tiempo, y solo quiero delegar esta tarea.
Entiendo que no es posible descargar todas las cadenas como un archivo JSON, pero ¿los textos editados?
Descargar todos los textos del idioma y editar el archivo debería ser una solución alternativa para obtener el resultado deseado en 1/5 del tiempo.
Estructura de Plugin de Alto Nivel
-
Crear Esqueleto de Plugin
-
Backend: Extender Permisos
-
Sobrescribir el controlador relevante, por ejemplo, Admin::SiteTextController, para permitir que los miembros de tu grupo personalizado accedan a los puntos finales de edición de texto.
-
Podrías usar algo similar a:
add_to_class(:admin_constraint, :matches?) do |request|
user = ... # cargar usuario actual de la solicitud
return true if user.admin?
# Comprobar la membresía de tu grupo
group_id = Group.find_by(name: 'tu_nombre_de_grupo')&.id
return user.group_ids.include?(group_id)
end
Esto es solo ilustrativo — necesitarás localizar la verificación de permisos correcta y asegurarte de que solo esté limitada a la edición de localización, no a la administración completa.
-
Frontend: Exponer UI a los Miembros del Grupo
-
Seguridad
- Volver a verificar los permisos en cualquier acción de controlador y ruta sobrescrita. Nunca confíes en las verificaciones del lado del cliente.