1

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

我很感激任何指导。

谢谢 :)

4

3 回答 3

3

创建一个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);
}
于 2012-12-12T18:23:15.160 回答
2

前几天我需要做类似的事情并想出了这个解决方案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)));
  }
}
于 2012-12-12T17:50:52.813 回答
1

我有一个沙盒模块来执行此操作: https ://drupal.org/sandbox/dhalbert/1695174 (“密码更改日志”)。

它使用 ahook_user_update()但在其他方面与接受的答案非常相似。

于 2014-02-17T02:30:53.043 回答