web-dev-qa-db-ja.com

ユーザーの電子メールが確認された後、ユーザーに役割を割り当てるにはどうすればよいですか?

ユーザーがメールを確認した後、ユーザーに役割を割り当てたい。

どうすればよいですか?

Rules および LoginTobogganDrupal Answers のこの回答)を参照してください。 )。

ルールを使用すると、ユーザーに役割を追加するなどの「トリガー」を追加できます。LoginTobogganは、アカウントが検証されたときに「トリガー」を提供します。

2
merauluka

hook_user_login(&$edit, $account)から呼び出されるuser_login_finalize()を使用できます。

$ editパラメータが空の場合は、user_pass_reset()メニューコールバックから呼び出されるためです。

// user_login_finalize() also updates the login timestamp of the
// user, which invalidates further use of the one-time login link.
user_login_finalize();

この例は機能するはずです:

function MYMODULE_user_login(&$edit, $account) {
  if (empty($edit)) {
    // @todo Add role to $account->roles array
  }
}
0
smartinm