アクティブ化されたステージングユーザーを承認すると、ログインするように指示されますが、ログインできません

再現手順

  1. /my/messages に移動します。
  2. 「新しいメッセージ」をクリックします。
  3. 既存のユーザーに紐付いていないメールアドレスを入力します。
  4. メッセージを入力して送信します。

これにより、メールが送信され、ステージング状態のユーザーが作成されます。

  1. 管理パネルからユーザーをアクティブ化します。
    a. 私のケースでは、新しいアカウントの承認が必要だったため、ユーザーの承認も行う必要がありました。これが一般的かどうかはわかりません。

  2. ユーザーにメールが届きます:
    \u003e …で承認されました
    \u003e
    \u003e スタッフメンバーがあなたのアカウントを承認しました…
    \u003e
    \u003e 以下のURLからログインして、新しいアカウントにアクセスできます: \u003csiteurl\u003e

  3. メールに記載された指示通り、ユーザーはURLにアクセスします。

期待される結果

ユーザーはログインできること

実際の結果

  • ログインダイアログでメールアドレスを入力し、「パスワードをスキップしてログインリンクを送信」を選択すると、「アカウントが見つかりません…」というエラーが表示されます。

  • 「パスワードをお忘れですか」をクリックし、続けて「パスワードをリセット」を選択しても、「アカウントが見つかりません…」というエラーが表示されます。

  • ユーザーはそのメールアドレスで新しいアカウントを作成することはできますが(少なくとも私のテストでは)、これによりユーザーは再び非アクティブ状態に戻され、「新しいアカウントを確認してください」というメールが送信されます。これは、すでに「承認されました」と伝えられた後に起こることとは期待されません…

余計な追加問題:この問題に初めて遭遇した際にDiscourseから送信したメッセージには招待リンクが含まれていました。ユーザーはその招待リンクを使用できませんでした:

招待リンクなしでも問題を再現できるため、再現手順には記載していませんが、ここであえて触れておきます。これは、私がアカウントをどのような奇妙な状態にしてしまったのかを特定する手がかりになる可能性があるからです。

ステージ化されたユーザーをユーザー管理ページから有効化できるのは興味深いですね。ステージ化されたユーザーはログインしないことが想定されているため、有効化できるのは理にかなっていません。ステージ化されたユーザーは、自分でアカウントを作成することで :sparkles: から通常のユーザーへと変換され、それまでメールでのみ参加していたすべてのメッセージにアクセスできるようになります。

つまり、一つの解決策は、そのような操作をしないことです。:slight_smile: サイトに誰かを招待したい場合は、通常の方法で招待してください。メールでステージ化されたユーザーを作成するのではなく。

しかし、他の人が同様の問題に遭遇しないよう、この挙動を防ぐことも検討しましょう。私のサイトでも簡単にテストして、再現できるか確認します。

「いいね!」 1

はい、私のサイトでもこれを再現できました。ステージングユーザーをアクティブ化できてしまうのは確かに不具合です。見つけていただき、ありがとうございます!

「いいね!」 2

なるほど、その通りですね!

有効化されていないステージングユーザーに対して試したところ、確かにうまく動作することを確認できました。もし最初のメッセージに続けて、これらのメールアドレスに対して直接招待(つまり、「このメールアドレスに限定」を選択し、「招待メールを送信」ボタンをクリック)を送っていた場合、受信者は招待リンクをクリックするだけでアカウントを作成できたはずです。

ただし、有効化されたステージングユーザーに対しては、この方法を行うことができません。その場合、招待を試みると失敗します。なぜなら、そのメールアドレスはすでにユーザーアカウントと関連付けられているからです。

しかし、ステージングユーザーはそもそも有効化されるべきではないため、これは問題にならないはずです :slight_smile:

もちろん、これは「N 回使用に制限」された招待でした。これが招待リンクの利用可能性に影響を与えるかどうかはわかりませんが、すでに判明した事実を踏まえると、もし私が事前にアカウントを有効化していなければ、この招待リンクは正常に機能していたのではないかと推測します。

「いいね!」 1