Alterar e-mail da equipe pelo console

:bookmark: Este guia descreve como alterar o endereço de e-mail de um membro da equipe a partir do console usando o console Rails. Aplica-se a situações em que um administrador precisa atualizar um e-mail sem confirmação do endereço antigo.
:
:person_raising_hand: Nível de usuário necessário: Administrador do Sistema
:
:warning: Acesso ao console necessário

No Discourse, para maior segurança, os membros da equipe devem confirmar as alterações em seus endereços de e-mail tanto nos endereços de e-mail novos quanto nos antigos. No entanto, isso cria um problema quando um membro da equipe perde o acesso ao seu endereço de e-mail antigo e deseja atualizar seu endereço de e-mail. Este guia fornece as etapas para alterar o endereço de e-mail através do console sem a necessidade de confirmação do e-mail antigo.

:information_source: Esses comandos também podem ser usados para forçar uma alteração no endereço de e-mail de um usuário e anular a necessidade de confirmação clicando no e-mail de validação

Acessando o console

Conecte-se ao seu Droplet via SSH, ou use o Putty no Windows:

ssh root@192.168.1.1

Substitua 192.168.1.1 pelo endereço IP do seu Droplet.

Mude para a pasta do seu Discourse:

cd /var/discourse

Entre no contêiner:

./launcher enter app
# ou
./launcher ssh app

Acesse o Rails Console:

rails c

Alterando o endereço de e-mail

Para personalizar estas informações para o seu usuário, insira suas informações aqui:


                            ou

Em seguida, execute estes comandos (cada um em uma linha separada)

u = User.find_by_id(=UserID=)

                            ou

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

u.email = "=EMAIL="

:information_source: Se um usuário atingiu o limite de e-mails devolvidos (ou seja, sua pontuação de devolução excedeu o limite definido pelo seu site Discourse), criar um novo token de e-mail com u.email_tokens.create(email: u.email) não terá efeito, e você precisará primeiro Redefinir a Pontuação de Devolução antes de prosseguir.

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

É isso, seu endereço de e-mail deve ser atualizado, e você deve conseguir fazer login com seu novo e-mail.

29 curtidas

Isso gera o seguinte aviso de depreciação:

AVISO DE DEPRECIAÇÃO: EmailToken#scope não pode estar vazio.
Em /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.4/lib/active_support/callbacks.rb:406:in BasicObject#instance_exec

Eu editei a wiki para atualizá-la para isto:

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