Changer l'adresse email du staff depuis la console

:bookmark: Ce guide décrit comment changer l’adresse e-mail d’un membre du personnel depuis la console en utilisant la console Rails. Il s’applique aux situations où un administrateur doit mettre à jour une adresse e-mail sans confirmation de l’ancienne adresse.

:person_raising_hand: Niveau d’utilisateur requis : Administrateur Système

:warning: Accès à la console requis

Dans Discourse, pour une sécurité accrue, les membres du personnel doivent confirmer les changements de leur adresse e-mail à la fois depuis la nouvelle et l’ancienne adresse e-mail. Cependant, cela pose un problème lorsqu’un membre du personnel perd l’accès à son ancienne adresse e-mail et souhaite mettre à jour son adresse e-mail. Ce guide fournit les étapes pour changer l’adresse e-mail via la console sans avoir besoin de confirmation de l’ancienne adresse.

:information_source: Ces commandes peuvent également être utilisées pour forcer un changement d’adresse e-mail d’un utilisateur et outrepasser la nécessité pour lui de confirmer en cliquant sur l’e-mail de validation.

Accéder à la console

Connectez-vous à votre Droplet via SSH, ou utilisez Putty sur Windows :

ssh root@192.168.1.1

Remplacez 192.168.1.1 par l’adresse IP de votre Droplet.

Passez à votre dossier Discourse :

cd /var/discourse

Entrez dans le conteneur :

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

Accédez à la console Rails :

rails c

Changer l’adresse e-mail

Pour personnaliser ceci pour votre utilisateur, entrez vos informations ici :


                ou

Puis exécutez ces commandes (chacune sur une ligne séparée)

u = User.find_by_id(=UserID=)

                ou

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

u.email = "=EMAIL="

:information_source: Si un utilisateur a atteint la limite des e-mails rejetés (c’est-à-dire que son score de rebond a dépassé le seuil défini par votre site Discourse), la création d’un nouveau jeton d’e-mail avec u.email_tokens.create(email: u.email) n’aura aucun effet, et vous devrez d’abord Réinitialiser son Score de Rebond avant de continuer.

u.email_tokens.create(email: u.email, scope: 'change_email')
u.save!

C’est tout, votre adresse e-mail devrait être mise à jour, et vous devriez pouvoir vous connecter avec votre nouvel e-mail.

29 « J'aime »

Ceci donne l’avis de dépréciation suivant :

AVIS DE DÉPRÉCIATION : EmailToken#scope ne peut pas être vide.
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

J’ai modifié le wiki pour le mettre à jour avec ceci :

u.email_tokens.create(email: u.email, scope: 'change_email')
2 « J'aime »