当用户在 drupal 中更改密码时记录在日志中



我需要记录用户在drupal 7中更改密码的时间。当注册用户更改其密码时,平台应在数据库中存储记录。

我感谢任何指导。

谢谢:)

创建一个 hook_form_user_profile_form_alter() 并添加一个额外的 #submit 处理程序(到窗体中),您可以在其中执行以下操作:

if (!empty($form_state['values']['pass']) && $form_state['values']['pass'] != $form_state['values']['current_pass']) {
  watchdog('user', 'The %name changed his password.', array('%name' => $account->name), WATCHDOG_NOTICE);
}

几天我需要做类似的事情,并使用hook_user_presave()想出了这个解决方案

function MYMODULE_user_presave(&$edit, $account, $category) {
  if (!empty($edit['pass']) && $account->pass != $edit['pass']) {
    watchdog('MYMODULE', t('Password changed for %name', array('%name' => $account->name)));
  }
}

我有一个沙盒模块来做到这一点:https://drupal.org/sandbox/dhalbert/1695174("密码更改日志")。

它使用hook_user_update(),但在其他方面与公认的答案非常相似。

最新更新