Sì, potrei farlo. Sarebbe però un po’ un workaround ![]()
Non sono sicuro che questo espediente rimanga valido nel tempo. È anche un po’ rischioso. Ad esempio, se eseguo semplicemente quel codice, l’impostazione del sito post_undo_action_window_mins dell’utente rimarrebbe modificata. Potresti reimpostarla alla fine della migrazione, ma apportare modifiche alle impostazioni in questo modo al volo per aggirare un guardian non è ideale.
L’ideale sarebbe apportare una leggera modifica all’interfaccia di ReactionManager per rendere possibile migrare in modo affidabile i retorts nelle reactions. Attualmente è configurata solo per gestire le richieste dal client.
Un modo per farlo sarebbe:
- astrarre il guardian in
toggle!in un metodoensure_can_toggle - rendere il metodo
ensure_can_togglesoggetto a un’opzioneforce
Questo è l’approccio tipicamente adottato per gestire migrazioni o importazioni backend in altre parti di Discourse (se cerchi force in app/ o lib/ troverai alcuni esempi).
Ha senso?