Cambia l'indirizzo email dello staff dal console

:bookmark: Questa guida descrive come modificare l’indirizzo email di un membro dello staff dalla console utilizzando la console Rails. Si applica alle situazioni in cui un amministratore deve aggiornare un’email senza la conferma dal vecchio indirizzo.
:
:person_raising_hand: Livello utente richiesto: Amministratore di sistema
:
:warning: Accesso alla console richiesto

In Discourse, per una maggiore sicurezza, i membri dello staff devono confermare le modifiche ai loro indirizzi email sia dal nuovo che dal vecchio indirizzo email. Tuttavia, questo crea un problema quando un membro dello staff perde l’accesso al proprio vecchio indirizzo email e desidera aggiornarlo. Questa guida fornisce i passaggi per modificare l’indirizzo email tramite la console senza la necessità di conferma dal vecchio indirizzo email.

:information_source: Questi comandi possono anche essere utilizzati per forzare una modifica all’indirizzo email di un utente e ignorare la necessità che confermino cliccando sull’email di convalida.

Accesso alla console

Connettiti al tuo Droplet tramite SSH, o usa Putty su Windows:

ssh root@192.168.1.1

Sostituisci 192.168.1.1 con l’indirizzo IP del tuo Droplet.

Passa alla cartella di Discourse:

cd /var/discourse

Entra nel container:

./launcher enter app
# oppure
./launcher ssh app

Accedi alla console Rails:

rails c

Modifica dell’indirizzo email

Per personalizzare questi dati per il tuo utente, inserisci le tue informazioni qui:


                          oppure

Quindi esegui questi comandi (ciascuno su una riga separata)

u = User.find_by_id(=UserID=)

                          oppure

u = User.find_by_username("=Username=")

u.email = "=EMAIL="

:information_source: Se un utente ha raggiunto il limite per le email rimbalzate (ovvero il suo punteggio di rimbalzo ha superato la soglia impostata dal tuo sito Discourse), la creazione di un nuovo token email con u.email_tokens.create(email: u.email) non avrĂ  alcun impatto, e dovrai prima Resettare il suo Punteggio di Rimbalzo prima di procedere.

u.email_tokens.create!(email: u.email, scope: EmailToken.scopes[:email_update])
u.save!

Questo è tutto, il tuo indirizzo email dovrebbe essere aggiornato e dovresti essere in grado di accedere con il tuo nuovo indirizzo email.

29 Mi Piace

Questo restituisce il seguente avviso di deprecazione:

AVVISO DI DEPRECAZIONE: EmailToken#scope non può essere vuoto.
At /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.4/lib/active_support/callbacks.rb:406:in BasicObject#instance_exec

Ho modificato la wiki per aggiornarla a questo:

u.email_tokens.create(email: u.email, scope: 'change_email')
2 Mi Piace