web-dev-qa-db-fra.com

Comment vérifier si l'utilisateur a changé le mot de passe?

Je voulais envoyer un courrier électronique de notification de base à l'utilisateur, après avoir modifié le mot de passe, pour l'informer du changement de mot de passe.

J'utilise des modules Rules pour cela. Mais je ne trouve aucune option là-bas, d'ajouter une condition si l'utilisateur a changé le mot de passe.

Est-ce que je peux vérifier si l'utilisateur a changé son mot de passe en utilisant des règles ou de manière pragmatique.

-- Merci beaucoup pour votre temps.

9
Kalpesh Patel

Je ne l'ai pas essayé dans des règles avant, mais il s'agirait probablement de comparer des valeurs sur le $account Et $account->original Objets.

Une façon de le faire dans le code personnalisé consiste à mettre en œuvre hook_user_presave() :

function MYMODULE_user_presave(&$edit, $account, $category) {
  // Don't show message for registering users.
  if (isset($account->is_new) && $account->is_new) {
    return;
  }

  if (!empty($edit['pass']) && $account->pass != $edit['pass']) {
    // Password has been changed.
  }
}

Vous pouvez probablement faire la même chose dans hook_user_update(), mais je n'ai pas essayé cela auparavant. Ce qui précède est tiré d'un projet en direct et fonctionne parfaitement.

4
Clive