Como adicionar todos os membros em um novo grupo?

Olá,

Gostaria de adicionar todos os membros a um novo grupo, mas quando tento copiar e colar uma grande lista de nomes de usuário separados por vírgula, recebo um erro.

Funciona quando tento importar 100, mas tenho 40 mil membros para adicionar…

No passado, era possível importar até 10 mil.

Alguma ideia?

1 curtida

Sim, não tenho certeza se a interface do usuário adiciona milhares de usuários em massa. Acho que você pode fazer isso criando um novo grupo e, em seguida, usando o console do Rails para adicionar usuários com trust_level: 0 a esse grupo. Se você decidir seguir esse caminho, certifique-se de fazer backup primeiro.

2 curtidas

Por quê? Que problema isso está resolvendo? Você está planejando remover alguns deles mais tarde? Por que não usar trust_level_0 ou trust_level_1? É provável que, o que quer que você esteja tentando fazer, adicionar todos os usuários a um grupo não seja uma boa maneira de resolver o problema.

Você pode fazer isso a partir do rails. Acho que isso funcionaria.

group=Group.find_by_name('my_group')
User.all.each do |user|
  GroupUser.create!(user_id: user.id, group_id: group.id)
end

Eu escrevi um plugin que pode ajudar, embora não seja bem testado e alguém que tentou teve problemas. Se você tem um orçamento ou é corajoso, pode entrar em contato comigo.

3 curtidas

Sim, eu só uso Trust_level_0 sempre que preciso segmentar o público de todos os membros.

1 curtida

Gostaria de mencionar em um tópico (e notificar por e-mail) todos os membros. Funcionará com o grupo de nível Trust_level_0? Idealmente, eu preferiria criar um novo grupo para personalizar o nome do grupo.

Talvez apenas ter uma categoria de anúncios e configurar todos para assistir a essa categoria?

Você pode adicionar todos do rails como eu sugeri, mas isso não vai adicionar novos usuários.

Talvez dar uma olhada no plugin de automação e associação de grupo através de emblemas. Parece que você poderia criar um emblema personalizado que adicionaria usuários com esse emblema ao grupo: Discourse Automation

3 curtidas

Se você tiver mais de 100 usuários, precisará alterar a configuração max users notified per group mention.

2 curtidas

ah sim, bom ponto! obrigado, esqueci dessa configuração. :slight_smile:

1 curtida

O número máximo de usuários que você pode adicionar de uma vez ao formulário Adicionar Usuários de um grupo é 1000. Olhando o código, parece que você receberia uma mensagem de erro semelhante a esta se tentasse adicionar mais:

“No máximo 1000 usuários podem ser adicionados de uma vez.”

Tem que haver algum tipo de limite, caso contrário, o Discourse corre o risco de lançar um erro não tratado. Para contornar o limite, gosto da abordagem do Plugin de Automação que Jay sugeriu.

2 curtidas

Por que não usar a interface encapsulada group.add(user)? Não haveria problemas potenciais em manipular diretamente os ActiveRecords dessa forma?

1 curtida

Tenho certeza de que esta é a melhor (e mais simples) solução para o caso de uso do @kam44.

Mas é muito bom saber como adicionar pessoas a um grupo a partir do console do Rails: isso será útil para mesclar grandes grupos, o que tive que fazer ocasionalmente!

2 curtidas

Por que não mesmo? Não tenho certeza por que não vi isso quando procurei um tempo atrás.

Não é perigoso chamar coisas do active record. Ele impõe as regras de que precisa.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.