ステージングされた既存ユーザーがサイトに参加した際、ユーザーカスタムフィールドのデータが保存されない

登録に苦労している潜在的なユーザーがいます。サポートのためにメールでモデレーターに連絡すると、ステージングされたユーザーアカウントが作成されます。

通常、問題は簡単に解決され、ユーザーはサインアップしてすべてのフィールドに入力します。特に、いくつかの必須ユーザーカスタムフィールド(UCF)があります。

これらのステージングされたユーザーの場合、UCFデータがデータベースに保存されないことに気づきました。その後、ユーザーに連絡して手動で管理する必要があります。

カスタムウィザードでデータを収集することで回避できますが、根本的な問題/バグは修正する必要があるでしょう。

「いいね!」 5

このバグは再現可能であり、修正すべきだと思います。

  1. どのメールアドレスからのメールも受け入れるグループを作成します。
  2. カスタムユーザーフィールドを作成します。
  3. (1)で設定したグループに、サイトのアカウントにまだ関連付けられていないメールアドレスからメールを送信します。これにより、そのメールアドレスを持つステージングユーザーが作成されます。
  4. ステージングユーザーと同じメールアドレスを使用してアカウントを作成します。
  5. プロンプトが表示されたら、ユーザーフィールドを完了します。
  6. ユーザープロファイルに移動し、ユーザーフィールドが入力されていないことを確認します。

ステージングユーザーアカウントにまだ接続されていないメールアドレスを使用してアカウントを作成すると、カスタムユーザーフィールドは期待どおりに入力されます。

「いいね!」 5

しばらくデバッグを試みましたが、再現できませんでした。

クリーンインストールでテストしました。変更した設定は次のとおりです。

  • pop3 polling enabled
  • pop3 polling host
  • pop3 polling username
  • pop3 polling password
  • email in

以下の手順を実行しました。

  1. 新しいグループを作成し、名前と「カスタム受信メールアドレス」のみを設定しました。グループは任意のメールアドレスからのメールを許可します。

  2. 複数のカスタムユーザーフィールドを作成しました。「テキストフィールド」、「確認」、「ドロップダウン」のタイプを試しました。必須フィールドとオプションフィールド、編集可能フィールドと編集不可能フィールドの両方をテストしました。

  3. 新しいメールアドレスからグループアドレスにメールを送信しました。これにより、ステージングされたユーザーが期待どおりに作成されます。

  4. 前にメールを送信したのと同じメールアドレスを使用して新しいアカウントを作成し、必須のカスタムフィールドに入力しました。

  5. ステージングされたユーザーは通常のユーザーに変換され、カスタムフィールドは保存され、u/user/preferences/profile に表示されます。

これはまだ再現できますか?もしそうなら、私のセットアップで異なる結果を生成する可能性のある違いについて何か考えはありますか?

「いいね!」 4

明らかな違いは、私たちのインスタンスが直接受信メールを使用しており、最初にログインしたときにカスタムウィザードが起動することだけです。

直接受信メールを使用するシンプルなサイトも同様に、私たちのサイトでもう一度テストしてから報告します。ただし、数日かかる場合があります。申し訳ありません。

「いいね!」 3

上記の手順で、私もまだ再現できます。私のサイトは直接受信メールも使用しています。招待制のサイトでもあるため、アカウントを作成するために招待リンクを送信しました。招待リンクに問題がないことを確認するために、一時的に登録を有効にしてアカウントを作成しました。同じ問題が発生しました - カスタムユーザーフィールドがありません。

再現手順をもう一度実行していただけますか?メールを送信してユーザーアカウントを作成する際に、incognitoモードまたは別のChromeプロファイルを使用するように、特に注意してください。

「いいね!」 3

直接受信メールとの予期せぬ相互作用である可能性があります。ダイレクト受信メールを実装する前に、このようなことがあったとは確かに記憶にありません。

それでも再現できない場合は、これを設定してもう一度試してください。

「いいね!」 1

こちらでも、ビジネスプランのトライアルでホスティング環境で再現できました。@jancernik さん、メールで招待状を探して、そちらでも再現できるようにしてください。

ホスティング環境では、Custom incoming email address グループ設定が表示されるように、管理設定の email in も有効にする必要があります。これで混乱しました。

Screenshot 2023-05-10 at 7.08.05 AM

また、ホスティング環境では、この設定のコピーが紛らわしいです。追加のマニュアルやPOP3ポーリングを設定する必要はなく、すぐに動作するからです。更新します。

編集:このPRでコピーを更新し、簡略化しました:this PR

メールで新しいトピックを投稿できるようにします。この設定を有効にすると、グループやカテゴリの受信メールアドレスを設定できるようになります。

「いいね!」 2

明確にするために、email in が無効になっている場合、OP の問題は再現できますか?

上記の2番目の投稿にある再現手順は、email in を有効にしないと実行できません。これは、フォーラムにメールを送信して新しいグループメッセージを作成し、ステージングされたユーザーを作成することを含むためです。

ただし、email in が有効になっていなくても、メールアドレスにPMを送信してステージングされたユーザーを作成し、そのメールアドレスでサインアップすることで問題を再現できます。ちょうどテストしました。

「いいね!」 2

これで何か進展はありましたか?

お尋ねしているのは、約100人をステージングユーザーとして追加しようとしているためです。彼らは既存の外部ニュースレターにメールリスト経由で登録していましたが、今後は当サイトから配信する予定です。

彼らの多くが登録してくれることを期待していますが、UCFが届かないと非常に厄介なことになります!

「いいね!」 1

対応中の案件ですが、解決までには数週間かかる見込みです。

「いいね!」 3

@daniel のおかげで、FIX: Staged user creation loses user custom field data by pmusaraj · Pull Request #22206 · discourse/discourse · GitHub を通じて修正が完了しました。

@tobiaseigen @nathank さん、テストをお願いできますか?

「いいね!」 5

上記の再現手順でテストしたところ、修正されたことを確認しました。素晴らしい仕事です!これは厄介な問題でした。

管理者のプロファイルを見たとき、フィールドが表示されなかったため、一時的に不安になりました。しかし、ブラウザを更新すると表示されました。:sweat_smile:

「いいね!」 6