Feedback sulla nuova Review Queue (2019)

Robin,

Sto attualmente preparando una PR per il plugin Discord OAuth, principalmente per memorizzare più informazioni sugli utenti Discord in Discourse. Sto cercando di utilizzare il tuo modello ReviewableUser per mantenere la funzionalità che implementa l’approvazione automatizzata.

Poiché l’implementazione attualmente avvia una revisione per i nuovi utenti in modo asincrono, devo verificare se è stata creata una tale revisione e cancellarla.

Sfortunatamente sto ricevendo un errore Ruby molto strano e mi chiedevo se ti fossi imbattuto in qualcosa di simile.

Il codice è:

  def after_create_account(user, auth)
    super
    
    data = auth[:extra_data]
    if !user.approved && data[:auto_approve]
      user.approved = true
      user.approved_by_id = Discourse.system_user.id
      if reviewable_user = ReviewableUser.find_by(target: user)
          reviewable_user.set_approved_fields!(user, Discourse.system_user)
      end
    end
  end

Non appena viene eseguito ReviewableUser.find_by, ottengo un’eccezione:

*** NameError Exception: wrong constant name #<Class:0x000056134e417870>::DiscordAuthenticator

Pensavo di aver fatto buoni progressi con Ruby, ma non sono chiaro sul motivo per cui stia accadendo questo.

È un problema di percorso? Ho provato un sacco di require, ma la situazione si complica.

È molto simile a pattern simili altrove nel codice principale. Qualsiasi idea è molto apprezzata!

Il repository è qui, se necessario: discourse-plugin-discord-auth/plugin.rb at master · merefield/discourse-plugin-discord-auth · GitHub