Adicionar script para adicionar usuário ao grupo de usuários

Atualmente, existe um script no plugin Automation para adicionar usuários a um grupo com base em um campo personalizado. Gostaríamos de um script para adicionar usuários a um grupo quando eles forem adicionados a outro grupo.

O cenário é este: O plugin Discourse Experts espera que você tenha apenas um grupo de usuários designado para “experts”. Estamos executando um programa de embaixadores e temos dois níveis de embaixadores — ambos são “experts” neste caso.

Gostaríamos de dizer que qualquer pessoa adicionada a “Embaixadores” ou “Embaixadores Experts” também seja adicionada ao grupo de usuários “Experts”.

5 curtidas

Se você estiver disposto a patrocinar isso, não vejo como algo muito complicado, podemos orçar o trabalho. Contate a equipe.

2 curtidas

Também solicitado em:

2 curtidas

Além do tópico que @JammyDodger linkou, houve algumas outras solicitações de funcionalidade semelhante

Também houve solicitações para poder exibir grupos de forma hierárquica:

Estou anotando isso apenas para ter certeza de que adicionar um script de Automação é a melhor maneira de lidar com isso, ou se é uma funcionalidade que deve ser adicionada ao código principal de grupos do Discourse.

Eu tenho mexido nisso por diversão. Está meio que relacionado a um trabalho recente que tenho feito com o Zapier. Sinta-se à vontade para ignorar o resto desta postagem.

Assumindo que um script de Automação é a abordagem correta, o único obstáculo é que o componente group do plugin de Automação aceita apenas um único grupo. Portanto, o componente group precisa ser atualizado para aceitar mais de um grupo, ou um novo componente groups precisa ser adicionado. Adicionei um componente groups ao meu branch de desenvolvimento local para testá-lo. Com isso implementado:

Adicionar um usuário a um grupo pai quando ele é adicionado a qualquer um de uma lista de subgrupos:

Remover um usuário de um grupo pai se ele foi removido de todos os subgrupos listados:

Se ajudar, os gatilhos e scripts estão em um plugin: automation-script-example/plugin.rb at main · scossar/automation-script-example · GitHub. Observe que este código assume que um componente groups foi adicionado a https://github.com/discourse/discourse-automation/tree/main/assets/javascripts/discourse/components/fields.

4 curtidas

Este plugin agora cobre esta funcionalidade: