登録フォームがあります。登録フォームで、ユーザーはユーザー名、メールアドレス、パスワードを入力し、パスワードを確認できます。
ユーザーが登録すると、ユーザーはシステムにログインする前に、自分のメールアドレスを確認するためのメールを受信する必要があります。
メール認証の前に、彼/彼女はシステムへのログインを許可されるべきではありません。
また、彼/彼女は登録時に自分のパスワードを設定する必要があります。
出来ますか?
logintoboggan を Rules モジュールと共に使用しています。 Rules を使用して、登録時にユーザーのステータスをblock
に設定します。次に、ルールWhen the user account is validated
(このイベントはlogintobogganルール統合モジュールによって提供されます)を使用して、ユーザーをアクティブ化しています。
しかし、問題は、loggintobogganモジュールが電子メールの検証時にユーザーに自動的にログインすることであり、ユーザーがアクティブ化されているにもかかわらず、エラーメッセージthe user is currently not active or blocked
が表示されます。ルールイベントは、電子メールアドレスの検証後にトリガーされるためです。
電子メールの検証時に、loggintobogganモジュールがユーザーに自動的にログインしないようにする方法はありますか?
最初はユーザーをブロックしません。それは確かにあなたが取り除こうとするそのエラーメッセージを引き起こさないでしょう。そして、代わりに Flag モジュールを( Rules モジュールと組み合わせて)使用して、次のようにロジックを実装します。
When the user account is validated
を使用して、「検証済み」というラベルの付いたフラグでそのユーザーにフラグを付けます。登録したユーザーが(下のコメントのように)メール検証なしでサイトにログインできるという事実の救済策として、次のようなルールロジックを追加できます。
user/logout
へのリダイレクトを実行しますおそらく、同じルールアクションで「申し訳ありませんが、アカウントはまだ検証されていません。最初に検証してください」などのメッセージを追加してください。