Fehler: Patreon-Gruppenmitgliedschaftsrückruf für neuen Benutzer fehlgeschlagen

Ich richte gerade einen Discourse-Server mit Patreon-Integration ein. Beim Registrieren von Patrons auf Discourse erhalte ich folgende Fehlermeldung:

Patreon group membership callback failed for new user 7 with error: undefined method `add' for nil:NilClass.
/var/www/discourse/plugins/discourse-patreon/plugin.rb:166:in `block (3 levels) in activate!'
/var/www/discourse/plugins/discourse-patreon/plugin.rb:164:in `each'
/var/www/discourse/plugins/discourse-patreon/plugin.rb:164:in `block (2 levels) in activate!'
/var/www/discourse/lib/plugin/instance.rb:215:in `public_send'
/var/www/discourse/lib/plugin/instance.rb:215:in `block (2 levels) in add_model_callback'

Der Benutzer registriert sich über die Patreon-Authentifizierung. Der Benutzer wird erstellt, Patreon erscheint unter Associated Accounts, aber die Patreon-Daten (Betrag, Belohnungen) werden nicht zu seinem Profil hinzugefügt, und er wird nicht der Gruppe hinzugefügt. Wenn ich auf Update Patreon Data & Sync Groups klicke, werden die Daten angezeigt und er wird erfolgreich der Gruppe hinzugefügt.

Es handelt sich nicht um neue Patrons. Sie sind seit langem Patrons und treten erst jetzt Discourse bei.

Ich verwende derzeit die aktuelle Version 2.4.0.beta4. Es ist auf meinem eigenen Server installiert, aber eine Standard-Installation.

Bevor ich auf diese Version aktualisiert habe, habe ich das Plugin deaktiviert und den Client-Schlüssel gelöscht und neu erstellt. (Eine verzweifelte Versuche, ein Problem zu lösen, das tatsächlich durch die neue Version behoben wurde…) Ich frage mich, ob ich die Konfiguration der Patrons-Gruppe irgendwie „beschädigt

Irgendwelche Gedanken dazu, @vinothkannans?

Ich habe mir den Code etwas angesehen und festgestellt, dass die Funktionalität zur Gruppenzuweisung an zwei Stellen verwaltet wird:

  1. add_model_callback in plugin.rb, das die Registrierung eines einzelnen neuen Benutzers übernimmt.
  2. sync_groups in patron.rb, das die Batch-Synchronisierung der Gruppenmitgliedschaft für alle Mitglieder übernimmt.

Meine Erfahrung ist, dass sync_groups funktioniert, add_model_callback jedoch nicht.

Mir ist aufgefallen, dass sync_groups folgende Zeile enthält:

next if group.nil?

Brauchen wir dieselbe Zeile in add_model_callback? (Vor Zeile 166.)

Das würde verhindern, dass die Ausnahme ausgelöst wird, aber ich weiß nicht, ob damit alles korrekt wäre. Ich kenne den Code oder das Datenmodell nicht, also ist das eher eine Vermutung.

3 „Gefällt mir“

Ja, das ist korrekt. Vielen Dank für den Hinweis. Es ist im folgenden Commit behoben:

2 „Gefällt mir“

Vielen Dank, @vinothkannans!

3 „Gefällt mir“