インポートしたユーザーのプライマリメールを変更できません

こんにちは。DrupalフォーラムからDiscourseにインポートされたユーザーのパスワードリセットメールの件で、ユーザーをサポートしようとしています。プライマリメールアドレスに問題があり、プロファイルにセカンダリメールアドレスを追加しました。しかし、ユーザーはパスワードリセットをリクエストしようとすると、「登録済みのメールアドレスが存在しません」というメッセージが表示されると言っています。そこで、セカンダリをプライマリに、プライマリをセカンダリに変更しようとしましたが、変更は元に戻ってしまい、適用されません。さらに、Discourseから(管理者およびモデレーターである私に)「この操作を何度も実行しました」と表示され、変更しようとしています(問題の原因を排除するために、Discourseのセーフモードで別のブラウザを使用しました)。Railsコンソールで変更するためのヒントを見つけましたが、emailではなくwmailと書かれている箇所があり、正しくないように見えます。

「いいね!」 2

なので、タイポなしで試してみてください。 :slight_smile:

「いいね!」 2

:slight_smile: ありがとう、ジェイ。動作しないようです。

SyntaxError: 予期しないラベル、')' を期待しています
..._id: u.id).first.update (email: "user@email.com")
...                         ^~~~~~
SyntaxError: 予期しない')'、入力の終わりを期待しています
...email: "user@email.com")
...

UIは常にユーザーのメールアドレスを変更できるようにするべきであり、管理者に対するレート制限を行うべきではないため、これをバグとして再分類します。

Redisキャッシュをクリアすると役立つでしょうか?

さらに2つのタイプミスがありました。

そうは思いません。

おそらく、メールアドレスを大文字でインポートしたか、何か隠れた文字があったのではないでしょうか。セカンダリを追加するのではなく、別のメールに変更してみてください。

うーん、いや、アドレスは正しいです。メールクライアントに貼り付けて、そこにメッセージを送信しました。プライマリを変更しようとしましたが、プライマリはそのまま残り、セカンダリは未検証として追加されるだけでした。

最初の投稿からはバグが何であるか不明です。Support に戻します。

こちらをご覧ください:

こちらでより多くの情報が必要です。

こんにちは。情報が不足していたらすみませんが、何が足りなかったのか正直わかりません。以前にも述べたように、セーフモードで試してみました。

これは期待される動作でしょうか?

管理者はレート制限されるべきではないと思います。

これでうまくいきました

u=User.find_by_username("XXXXXX")
UserEmail.find_by(user_id: u.id).update(email: "XXXX@XXX.com")
「いいね!」 3

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.