web-dev-qa-db-ja.com

Drupalのパスワード回復機能は、電子メールアドレスのみを要求するように構成できますか?

(私はもともと webapps.stackexchange.comでこの質問をしました 。)

デフォルトでは、Drupalで「新しいパスワードの設定」フォームを提供すると、フォームはサイトのユーザー名またはメールアドレスのいずれかを要求します。ユーザーが有効なアカウントに関連付けられたユーザー名または電子メールアドレスを提供すると、ユーザーは新しいパスワードを設定できるリンクが記載された電子メール(そのアドレス)を受け取ります。

すべてのユーザーが現在のメールアドレスを使用していることを確認したいので、そのためにoffの機能を有効にしますユーザー名を入力します。ユーザーがユーザー名を入力すると、古いメールアドレスにメッセージを送信しますが、「メールを送信しています」というメッセージをユーザーに返す場合があります。持っていないメールアドレスを入力すると、エラーメッセージが表示され、最新の状態に保たれていないという事実が警告されます(メールで連絡が取れます)。

電子メールのみを要求するように制限できますか?

2
pjmorse

これを管理バックエンドで設定できるかどうかを尋ねている場合、いいえ、できません。それぞれの機能は現在、 ser_pass_validate() 内にハードコードされています。

ただし、Drupalの強さの1つは、 modules を使用してプログラムでカスタマイズまたは拡張できる比較的簡単なことです。私は既存のものがこれだけをしていることを知りません(最終的にが存在するかもしれませんが、 ser access/authentication に関連するそれぞれのリストはかなり巨大です)が、ここにあります開発者ができること:

  1. Druでのユーザーログインページ、登録、およびパスワードリセットのカスタマイズとオーバーライド pal 6

    • これは物事のUI側を扱います。つまり、説明に従い、必要に応じて代替フォームを提供します( Form APIクイックスタートガイド を参照)、既にユーザー名を入力する際のヒントを削除できますcould知識のある人にはまだ正常に入力できます。
  2. 実際にユーザー名を入力する機能をオフにする既存のフォーム検証関数を上書きする必要があります ser_pass_validate() 単にそれぞれのチェックをスキップするカスタムコピーでアカウントを名前で読み込もうとするコードを削除します(開始点については Form APIクイックスタートガイド のセクションValidating Formsを参照してください)。

より詳細な答え(つまり、幸運であれば、使用可能な実装)については、もう一度別のStack Exchangeサイトを参照する必要があります:スタックオーバーフローで Drupalタグ でこれを尋ねることができます;)

2
Steffen Opel

これを探していると思います: http://drupal.org/project/email_registration

0
Adrian