Discourse Assign – Bug legt die Seite lahm

Ich habe kürzlich die Seiteneinstellung für die Gruppe(n) geändert, die Discourse Assign verwenden dürfen. Beim Klicken auf die Schaltfläche „Aktualisieren

Ist das discourse-assign-Plugin in deiner Instanz aktuell? Oder hast du das Plugin vor einiger Zeit geforkt? Im Juli gab es eine Änderung im discourse-assign-Plugin, die für die von dir beobachteten Fehler relevant zu sein scheint.

2 „Gefällt mir“

Hallo Penar, ich bin mir ziemlich sicher, dass es auf dem neuesten Stand war. Ich aktualisiere regelmäßig alles, einschließlich der Plugins.

Ich denke, ich werde wiederherstellen müssen. Das letzte Backup wurde erstellt, bevor ich diese Seiteneinstellung geändert habe.

Hallo @jerry0,

Laut den Logs scheint das Plugin auf dem neuesten Stand zu sein. Welche Discourse-Version verwendest du?

2 „Gefällt mir“

aktuell, derzeit 2.4.0.beta4

Hmm, verstehe. Hast du die Einstellung vor oder nach dem Update auf beta4 geändert?

Es sieht so aus, als wäre unsere automatische Migration fehlgeschlagen und deine Einstellung nicht aktualisiert worden. Ich werde untersuchen, warum das passiert ist. Hast du den Server neu gestartet, bevor du das Plugin aktiviert hast, falls der alte Wert möglicherweise zwischengespeichert war? Lass es mich wissen, falls das nicht funktioniert, und ich stelle dir ein Ruby-Skript zur Verfügung, um das Problem manuell zu beheben.

1 „Gefällt mir“

Danke @Roman

Es ist passiert, bevor ich aktualisiert habe. Etwas Seltsames ist passiert, als ich die neue Einstellung hinzugefügt habe; ich glaube, ich habe auf das grüne Häkchen geklickt, bevor ich den neuen Gruppennamen „hinzugefügt

Wenn es dir nichts ausmacht, möchte ich vor dem manuellen Ändern der Einstellung noch eine Sache überprüfen.

Kannst du diesen Code in einer Rails-Konsole ausführen und mir die Ausgabe mitteilen?

DB.query_single(<<~SQL
  SELECT site_settings.value FROM site_settings WHERE site_settings.name = 'assign_allowed_on_groups'
SQL
).first.to_s.split('|')

Dies sollte uns zeigen, ob wir bei der Migration des Einstellungs-Werts einen Fehler gemacht haben.

So erhältst du Zugriff auf eine Konsole:

  • cd in deinen Discourse-Ordner
  • Betrete den Container mit ./launcher enter app
  • Öffne eine Rails-Konsole mit rails c
3 „Gefällt mir“

Die Antwort lautet

=> [“patently-staff”]

1 „Gefällt mir“

Danke, Jerry.

Hier läuft definitiv etwas falsch. Ich werde mir das ansehen und herausfinden, warum das passiert.

Hier ist das Skript:


group_id = Group.where(name: 'patently-staff').pluck(:id).join('|')

DB.exec("UPDATE site_settings SET value='#{group_id}' WHERE site_settings.name = 'assign_allowed_on_groups'")

Nach der Ausführung solltest du das Plugin erneut aktivieren können.

7 „Gefällt mir“

Perfekt, das hat funktioniert :grin: Danke @Roman. Lass mich wissen, falls ich noch etwas zur weiteren Unterstützung beitragen kann.

1 „Gefällt mir“

Hallo Roman,

wir haben ein ähnliches Problem mit dem discourse-assign-Plugin auf unserer Seite nach dem Upgrade auf 2.4.0beta4.

Das Problem tritt nur bei Benutzern auf, die sich per LDAP anmelden. (Wir verwenden “GitHub - jonmbake/discourse-ldap-auth: Discourse plugin to enable LDAP/Active Directory authentication. · GitHub” für die LDAP-Verbindung.)

Die Antwort auf die DB.query ist:
=> [“staff”]
aber “Group.where(name: ‘staff’).pluck(:id).join(‘|’)” gibt “” zurück.

Übrigens: In Version “2.4.0.beta1 +203” sind die Antworten ähnlich, aber die Anmeldung per LDAP ist möglich. (LDAP-Version 0.4.0, assign-Version 0.1)

Jede Hilfe ist willkommen,
Vielen Dank,
Frank

Hallo @diwr,

Laut dieser Abfrage hast du keine Gruppe namens staff. Vielleicht hast du sie umbenannt?

Du kannst das überprüfen, indem du folgenden Befehl ausführst: Group.where(id: 3).pluck(:name)

Ich denke, die Migration wird nicht funktionieren, wenn die Gruppe staff umbenannt wurde. Ich werde mir das heute ansehen.

2 „Gefällt mir“

Danke @Roman

Es scheint, dass es in „Team

Sie können das Skript mit “team” als Gruppennamen ausführen.

4 „Gefällt mir“

@Roman
Vielen Dank.
Ich musste nach dem Setzen des Werts “./launcher rebuild app” ausführen, aber dann hat es funktioniert.

6 „Gefällt mir“