Comment ajouter tous les membres dans un nouveau groupe ?

Bonjour,

Je voudrais ajouter tous les membres dans un nouveau groupe, mais quand j’essaie de copier-coller une grande liste de noms d’utilisateur séparés par une virgule, j’obtiens une erreur.

Cela fonctionne quand j’essaie d’importer 100, mais j’ai 40 000 membres à ajouter…

Dans le passé, il était possible d’importer jusqu’à 10 000.

Des idées ?

1 « J'aime »

Oui, je ne suis pas sûr que l’interface utilisateur puisse ajouter des milliers d’utilisateurs en masse. Je pense que vous pouvez le faire en créant un nouveau groupe, puis en utilisant la console Rails pour ajouter des utilisateurs avec un niveau de confiance : 0 à ce groupe. Si vous décidez de suivre cette voie, assurez-vous d’abord de sauvegarder.

2 « J'aime »

Pourquoi ? Quel problème cela résout-il ? Envisagez-vous de les supprimer plus tard ? Pourquoi ne pas simplement utiliser trust_level_0 ou trust_level_1 ? Il est probable que, quelle que soit la solution que vous recherchez, l’ajout de tous les utilisateurs à un groupe n’est pas une bonne façon de résoudre le problème.

Vous pouvez le faire depuis Rails. Je pense que cela fonctionnerait.

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

J’ai écrit un plugin qui pourrait aider, bien qu’il ne soit pas bien testé et que quelqu’un qui l’a essayé ait eu des problèmes. Si vous avez un budget ou si vous êtes courageux, vous pouvez me contacter.

3 « J'aime »

Oui, j’utilise simplement Trust_level_0 chaque fois que j’ai besoin de cibler la démographie de tous les membres.

1 « J'aime »

J’aimerais mentionner dans un sujet (et notifier par e-mail) tous les membres. Cela fonctionnera-t-il avec le groupe de niveau Trust_level_0 ? Idéalement, je préférerais créer un nouveau groupe pour personnaliser le nom du groupe.

Peut-être juste avoir une catégorie d’annonces et que tout le monde surveille cette catégorie ?

Vous pouvez ajouter tout le monde depuis Rails comme je l’ai suggéré, mais cela n’ajoutera pas de nouveaux utilisateurs.

Peut-être regarder le plugin d’automatisation et l’appartenance à un groupe par le biais d’insignes. Il semble que vous pourriez créer un badge personnalisé qui ajouterait les utilisateurs avec ce badge au groupe : Discourse Automation

3 « J'aime »

Si vous avez plus de 100 utilisateurs, vous devrez modifier le paramètre nombre maximum d'utilisateurs notifiés par mention de groupe.

2 « J'aime »

ah oui, bonne remarque ! merci, j’avais oublié ce paramètre. :slight_smile:

1 « J'aime »

Le nombre maximum d’utilisateurs que vous pouvez ajouter à la fois au formulaire Ajouter des utilisateurs d’un groupe est de 1000. En regardant le code, il semble que vous devriez recevoir un message d’erreur similaire à celui-ci si vous tentez d’en ajouter plus :

« Maximum 1000 utilisateurs peuvent être ajoutés à la fois. »

Il doit y avoir une sorte de limite, sinon Discourse risque de générer une erreur non gérée. Pour contourner cette limite, j’aime l’approche du plugin d’automatisation que Jay a suggérée.

2 « J'aime »

Pourquoi ne pas utiliser l’interface encapsulée group.add(user) ? N’y aurait-il pas de problèmes potentiels à manipuler directement les ActiveRecord de cette manière ?

1 « J'aime »

Je suis à peu près sûr que c’est la meilleure (et la plus simple) solution pour le cas d’utilisation de @kam44.

Mais c’est très bien de savoir comment ajouter des gens à un groupe depuis la console Rails : cela sera utile pour fusionner de grands groupes, ce que j’ai dû faire à l’occasion !

2 « J'aime »

Pourquoi pas en effet ? Je ne suis pas sûr de ne pas l’avoir vu quand j’ai cherché il y a quelque temps.

Il n’est pas dangereux d’appeler des choses active record. Il applique les règles dont il a besoin.

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