Maybe I’m missing something obvious, but I cannot find it. As an admin, can I change someone’s email address without them having to verify it?
Off-hand, I’d guess something like this would work:
cd /var/discourse
./launcher enter app
rails c
User.find_by(email: "chowder@mmmm.fooo").update(email: "bisque@soup.mmmm")
exit
exit
That’s console access, obviously.
I vaguely recall another topic here about this exact situation; try some searches.
Try this, the verification mail goes out, but they don’t have to respond to it:
Too late for me to edit that now, but it should be deactivate, change, reactivate iirc.
No problem I made it a wiki.
I am a new discourse user and I ran into the same issue. When I try the same approach (deactivate the user, update the email address, and then activate the user) it sending an email to confirm and it is only updating the email address after clicking the confirm email link. Is there a way to avoid this? I am using the API to do all the three actions.
There has been a change in the way emails are stored in the database.
The following commands should work:
cd /var/discourse
sudo ./launcher enter app
rails c
UserEmail.find_by(email: "oid@example.com").update(email: "new@example.com")
This will work fine but I am trying to do this via API as I will have to update multiple email addresses on a daily basis. Is it possible to do this via API?
Nécromassive, oui, mais je rencontre un problème similaire et, comme la recherche m’a mené ici, il peut être pertinent de mettre à jour les commandes en fonction de cette expérience.
Ma situation est la suivante :
-
Certains de mes utilisateurs ont tenté de modifier leur adresse e-mail principale.
-
Ils affirment que cela n’a pas fonctionné. Ils ont bien reçu un e-mail de confirmation, mais en cliquant sur le lien, ils obtiennent toujours un message « Expiré / Ne fonctionne pas ».
-
En tant qu’administrateur, je modifie moi-même cette adresse e-mail en éditant leur profil.
-
L’adresse e-mail principale est maintenant en « attente de confirmation/vérification ».
-
Les utilisateurs ne reçoivent aucun e-mail de confirmation.
-
Peu importe le nombre de fois où j’appuie sur l’option « renvoyer l’e-mail de validation/confirmation » dans leur profil, rien n’est envoyé (j’ai vérifié dans la section Admin/E-mail : aucun e-mail sortant pour cela. Ironiquement, si je clique pour leur envoyer l’e-mail de « réinitialisation du mot de passe », celui-ci est bien envoyé).
Le problème, c’est que si l’un de ces utilisateurs efface ses cookies, etc., il ne pourra plus accéder à son compte (cela arrive actuellement). J’ai donc essayé ceci :
Mais je reçois l’erreur NoMethodError: undefined method `update' for nil:NilClass. Peut-être que les champs ont encore changé au cours des deux dernières années ? ![]()
Toute aide est la bienvenue.
PS : De plus, si j’essaie de modifier l’adresse e-mail vers une autre ou vers l’ancienne, je reçois maintenant (en tant qu’administrateur) le message « Vous avez effectué cette action trop de fois. Veuillez réessayer plus tard ». Combien de temps est « plus tard » et pourquoi l’administrateur est-il limité en taux de requêtes pour la modification des adresses e-mail alors que je ne l’ai fait qu’une seule fois ? J’ai probablement fait une erreur sans m’en rendre compte ![]()
La livraison des e-mails fonctionne donc, peut-être que l’heure du serveur est décalée ou incorrecte ? Si l’heure de votre serveur est décalée, cela peut arriver.
Cela a fonctionné pour moi ! Si vous rencontrez toujours ce problème (ou pour toute autre personne qui tombe sur ce sujet
), je pense que cette erreur surviendrait si UserEmail.find_by(email: "oid@example.com") ne renvoyait rien. Cela vaut peut-être la peine de vérifier si l’adresse e-mail correspond exactement.