Discourse Retort

Ja, das könnte ich machen. Es wäre zwar ein bisschen ein Hack :wink:

Ich bin mir nicht sicher, ob ich davon ausgehen kann, dass dieser Workaround langfristig tragfähig bleibt. Es ist auch etwas riskant. Wenn ich diesen Code einfach ausführe, würde die Site-Einstellung post_undo_action_window_mins des Benutzers dauerhaft geändert bleiben. Man könnte sie zwar am Ende der Migration wieder zurücksetzen, aber solche Einstellungenänderungen auf dem Sprung vorzunehmen, um einen Guardian zu umgehen, ist nicht ideal.

Ideal wäre hier eine leichte Änderung an der Schnittstelle von ReactionManager, um eine zuverlässige Migration von Retorts zu Reaktionen zu ermöglichen. Derzeit ist sie nur so konzipiert, dass sie Anfragen vom Client verarbeitet.

Eine Möglichkeit dafür wäre:

  • den Guardian in toggle! in eine Methode ensure_can_toggle zu abstrahieren
  • die Methode ensure_can_toggle um eine Option force zu erweitern

Dies ist der Ansatz, der typischerweise in anderen Bereichen von Discourse für Migrationen oder Backend-Imports verwendet wird (wenn du in app/ oder lib/ nach force suchst, findest du einige Beispiele).

Macht das Sinn?

2 „Gefällt mir“