Aparte del tema que @JammyDodger enlazó, ha habido algunas otras peticiones de funcionalidad similar:
- Hierarchical group membership (groups inside groups)
- Parent groups and sub-groups
- https://meta.discourse.org/t/creating-subgroups/200812
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.

