Wie füge ich alle Mitglieder zu einer neuen Gruppe hinzu?

Hallo,

Ich möchte alle Mitglieder zu einer neuen Gruppe hinzufügen, aber wenn ich versuche, eine große Liste von Benutzernamen, die durch ein Komma getrennt sind, zu kopieren und einzufügen, erhalte ich eine Fehlermeldung.

Es funktioniert, wenn ich versuche, 100 zu importieren, aber ich habe 40.000 Mitglieder hinzuzufügen.

In der Vergangenheit war es möglich, bis zu 10.000 zu importieren.

Irgendwelche Ideen?

1 „Gefällt mir“

Ja, ich bin mir nicht sicher, ob die Benutzeroberfläche Tausende von Benutzern auf einmal hinzufügen kann. Ich glaube, Sie können dies tun, indem Sie eine neue Gruppe erstellen und dann die Rails-Konsole verwenden, um Benutzer mit Vertrauensstufe 0 zu dieser Gruppe hinzuzufügen. Wenn Sie diesen Weg einschlagen, stellen Sie sicher, dass Sie zuerst ein Backup erstellen.

2 „Gefällt mir“

Warum? Welches Problem löst das? Planen Sie, einige von ihnen später zu entfernen? Warum nicht einfach trust_level_0 oder trust_level_1 verwenden? Wahrscheinlich ist, was auch immer Sie zu tun versuchen, das Hinzufügen aller Benutzer zu einer Gruppe keine gute Lösung für das Problem.

Sie können es von Rails aus tun. Ich denke, das würde funktionieren.

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

Ich habe ein Plugin geschrieben, das helfen könnte, obwohl es nicht gut getestet ist und jemand, der es ausprobiert hat, Probleme hatte. Wenn Sie ein Budget haben oder mutig sind, können Sie mich kontaktieren.

3 „Gefällt mir“

Ich benutze Trust_level_0, wann immer ich die Zielgruppe aller Mitglieder ansprechen muss.

1 „Gefällt mir“

Ich möchte alle Mitglieder in einem Thema erwähnen (und per E-Mail benachrichtigen). Funktioniert das mit der Gruppe Trust_level_0? Idealerweise würde ich eine neue Gruppe erstellen, um den Gruppennamen anzupassen.

Vielleicht einfach eine Ankündigungskategorie einrichten und alle auf “Beobachten” für diese Kategorie setzen?

Du kannst alle aus Rails hinzufügen, wie ich vorgeschlagen habe, aber das fügt keine neuen Benutzer hinzu.

Vielleicht schaust du dir das Automatisierungs-Plugin und die Gruppenmitgliedschaft über Abzeichen an. Es sieht so aus, als könntest du ein benutzerdefiniertes Abzeichen erstellen, das Benutzer mit diesem Abzeichen zur Gruppe hinzufügt: Discourse Automation

3 „Gefällt mir“

Wenn Sie mehr als 100 Benutzer haben, müssen Sie die Einstellung max users notified per group mention ändern.

2 „Gefällt mir“

ah ja, guter Punkt! Danke, ich habe diese Einstellung vergessen. :slight_smile:

1 „Gefällt mir“

Die maximale Anzahl von Benutzern, die Sie auf einmal zum Formular „Benutzer hinzufügen“ einer Gruppe hinzufügen können, beträgt 1000. Wenn man sich den Code ansieht, scheint es, dass Sie eine Fehlermeldung ähnlich dieser erhalten sollten, wenn Sie versuchen, mehr hinzuzufügen:

„Maximal 1000 Benutzer können auf einmal hinzugefügt werden.“

Es muss eine Art Limit geben, sonst riskiert Discourse, einen unbehandelten Fehler auszulösen. Um das Limit zu umgehen, gefällt mir der Ansatz des Automatisierungs-Plugins, den Jay vorgeschlagen hat.

2 „Gefällt mir“

Warum nicht die gekapselte Schnittstelle group.add(user) verwenden? Gäbe es nicht potenzielle Probleme bei der direkten Manipulation von ActiveRecords auf diese Weise?

1 „Gefällt mir“

Ich bin ziemlich sicher, dass dies die beste (und einfachste) Lösung für den Anwendungsfall von @kam44 ist.

Aber es ist sehr gut zu wissen, wie man Leute über die Rails-Konsole zu einer Gruppe hinzufügt: Das wird nützlich sein, um große Gruppen zusammenzuführen, was ich gelegentlich tun musste!

2 „Gefällt mir“

Warum nicht? Ich bin mir nicht sicher, warum ich das nicht gesehen habe, als ich vor einiger Zeit danach gesucht habe.

Es ist nicht gefährlich, Active Record-Sachen aufzurufen. Es erzwingt die Regeln, die es benötigt.

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