Discourseユーザーが作成したレスポンスが期待通りではない

Discourse が戻ってきました

ほぼ完了です!abc@gmail.com にアクティベーションメールを送信しました。メール内の指示に従ってアカウントを有効化してください。

届かない場合は、スパムフォルダをご確認ください。

というメッセージが表示されますが、メールアドレスが存在している場合でも同様です。コードに変更を加え、userController の create メソッドでアクティベーションメッセージを「User Activated」とハードコードしました。それでも上記のメッセージが表示されます。どなたかご助力いただけますでしょうか?

申し訳ありませんが、何を書かれているのか理解できませんでした。

詳しく説明します。

まず、私たちの要件は以下の通りです。DB から大量のユーザーを Discourse に登録する必要があります。そのため、Web アプリで Firebase を通じてユーザーの Discourse アカウントを有効化しているため、メールによるアカウント有効化を許可することはできません。

そこで、Discourse のコードを調査し、userController の activate 関数でメール送信を行う部分をコメントアウトし、そこで直接ユーザーを有効化するように変更しました。その結果、以下のようなレスポンスが返されるようになりました。

    success: true,
    active: true,
    message: "User activated",
    user_id: user.id

しかし、昨日から以下のレスポンスが返されるようになりました。

success: true,
active: false,
message: ‘You’re almost done! We sent an activation mail to abc@gmail.com. Please follow the instructions in the mail to activate your account.If it doesn’t arrive, check your spam folder’

ユーザー登録 API が create 関数を呼び出しているかどうかを確認する方法、あるいはこの問題を引き起こしているキャッシュの有無について、ご教示いただけますでしょうか。

プラグイン内で変更を加えている場合を除き、Discourse を更新すると、Discourse のコードに対して行った変更は上書きされてしまいます。これが原因ではないでしょうか?

どのプラグインのことをおっしゃっていますか?私が変更したのは、discourse コード内の users_controller だけです。コードについてお手伝いいただけますか?コードを使ってデバッグしたいので、ユーザー登録のルートがどこにあるか教えていただけますか。正確には /u/u.json です。

また、userController で print を使って何かをログ出力した場合、ターミナルでそのログを確認できるはずです。現在、確認できていません。

問題の原因が分かりました。ペイロードから正しい password_confirmationchallenge を送信していなかったため、不審なリクエストと判定されていました。必要な変更を加えたところ、現在は正常に動作しています。ただ、これら2つのパラメータが常に変化する理由、その背後にあるロジックが気になります。