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?
大規模なネクロマンシー、確かに。しかし、私も同様の問題に直面しており、検索でここへたどり着いたことから、この経験に基づいてコマンドを更新することが関連するかもしれません。
私の状況は以下の通りです:
- 一部のユーザーがメインの電子メールアドレスの変更を試みました。
- 変更が機能しなかったと主張しています。確認メールは受信したが、リンクをクリックすると常に「期限切れ/動作しない」というメッセージが表示されるとのことです。
- 私は管理者として、プロフィールを編集してそのメールアドレスを変更しました。
- 現在、メインのメールアドレスは「確認待ち/検証待ち」の状態になっています。
- ユーザーには確認メールが届きません。
- プロフィールの「確認メールを再送」オプションを何度押しても、メールは送信されません(管理者/メールセクションで確認しましたが、そのメールの送信記録はありません。皮肉なことに、「パスワードリセットメール」を送信するようにクリックすると、それは送信されます)。
問題は、これらのユーザーのいずれかがクッキーなどを削除すると、アカウントに再度アクセスできなくなることです(実際、現在その状態になっています)。そこで、私は以下を試みました:
しかし、NoMethodError: undefined method `update' for nil:NilClassというエラーが発生します。もしかすると、過去2年間でフィールドが再度変更されたのでしょうか?![]()
ご支援をよろしくお願いいたします。
追記:また、メールアドレスを別のもの、あるいは以前のアドレスに変更しようとすると、私(管理者)は「このアクションを何度も実行しました。後でもう一度お試しください」というメッセージが表示されます。「後で」とはどのくらいの時間のことでしょうか?また、私が一度しかメールアドレスの変更を行っていないのに、なぜ管理者がメールアドレス変更でレート制限されるのでしょうか?私が何か間違ったことをして、それに気づいていなかったのかもしれません ![]()
メール配信は機能しているようです。サーバー時間がずれているか、正しくない可能性があります。サーバー時間がずれていると、このような現象が発生することがあります。
私の環境では正常に動作しました!もしまだこの問題に直面している場合(あるいはこのトピックを見つけた他の誰か
)、UserEmail.find_by(email: "oid@example.com") が何も返さなかった場合にそのエラーが発生する可能性があります。メールアドレスが完全に一致しているか、もう一度確認してみる価値があるかもしれません。