Agregar script para agregar usuario a grupo de usuarios

Actualmente existe un script en el plugin Automation para agregar usuarios a un grupo basándose en un campo personalizado. Nos gustaría un script para agregar usuarios a un grupo cuando se les agrega a otro grupo.

El escenario es el siguiente: El plugin Discourse Experts espera que solo tengas un grupo de usuarios designado para “expertos”. Estamos ejecutando un programa de embajadores y tenemos dos niveles de embajadores, ambos son “expertos” en este caso.

Nos gustaría decir que cualquiera que se agregue a “Embajadores” o “Embajadores Expertos” también se agregue al grupo de usuarios “Expertos”.

5 Me gusta

Si está dispuesto a patrocinar esto, no lo veo demasiado complicado, podemos presupuestar el trabajo. Póngase en contacto con team.

2 Me gusta

También solicitado en:

2 Me gusta

Aparte del tema que @JammyDodger enlazó, ha habido algunas otras peticiones de funcionalidad similar:

También ha habido peticiones para poder mostrar los grupos de forma jerárquica:

Lo anoto solo para asegurarme de que añadir un script de Automatización es la mejor manera de abordar esto, o si es una funcionalidad que debería añadirse al código principal de grupos de Discourse.

He estado jugueteando con esto por diversión. Está un poco relacionado con un trabajo reciente que he estado haciendo con Zapier. Siéntete libre de ignorar el resto de esta publicación.

Suponiendo que un script de Automatización es el enfoque correcto, el único obstáculo es que el componente group del plugin de Automatización solo acepta un grupo. Por lo tanto, o bien el componente group necesita ser actualizado para aceptar más de un grupo, o bien se necesita añadir un nuevo componente groups. He añadido un componente groups a mi rama de desarrollo local para probarlo. Con eso en su lugar:

Añadir un usuario a un grupo padre cuando se le añade a cualquiera de una lista de subgrupos:

Eliminar a un usuario de un grupo padre si ha sido eliminado de todos los subgrupos listados:

Si sirve de ayuda, los disparadores y scripts están en un plugin: automation-script-example/plugin.rb at main · scossar/automation-script-example · GitHub. Ten en cuenta que este código asume que se ha añadido un componente groups a https://github.com/discourse/discourse-automation/tree/main/assets/javascripts/discourse/components/fields.

4 Me gusta

Este plugin ahora cubre esta funcionalidad: