From ffc0f88f2a346d11da459f9a73a14695014ecfcb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 24 Apr 2006 21:28:24 +0000 Subject: [PATCH] Ajout trigger USER_NEW_PASSWORD (modification mot de passe) --- .../triggers/interface_demo.class.php | 4 ++++ htdocs/user.class.php | 24 ++++++++++++------- htdocs/user/fiche.php | 2 +- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/htdocs/includes/triggers/interface_demo.class.php b/htdocs/includes/triggers/interface_demo.class.php index 45eea127e94..733777f5643 100644 --- a/htdocs/includes/triggers/interface_demo.class.php +++ b/htdocs/includes/triggers/interface_demo.class.php @@ -110,6 +110,10 @@ class InterfaceDemo { dolibarr_syslog("Trigger '".$this->name."' for action '$action' launched. id=".$object->id); } + elseif ($action == 'USER_NEW_PASSWORD') + { + dolibarr_syslog("Trigger '".$this->name."' for action '$action' launched. id=".$object->id); + } elseif ($action == 'USER_DISABLE') { dolibarr_syslog("Trigger '".$this->name."' for action '$action' launched. id=".$object->id); diff --git a/htdocs/user.class.php b/htdocs/user.class.php index 4354771abcb..68d6674e4c3 100644 --- a/htdocs/user.class.php +++ b/htdocs/user.class.php @@ -840,13 +840,13 @@ class User } - /** - * \brief Change le mot de passe d'un utilisateur - * \param user Object user de l'utilisateur qui fait la modification - * \param password Nouveau mot de passe (généré par defaut si non communiqué) - * \param isencrypted 0 ou 1 si il faut crypter le mot de passe en base (0 par défaut) - * \return string mot de passe, < 0 si erreur - */ + /** + * \brief Change le mot de passe d'un utilisateur + * \param user Object user de l'utilisateur qui fait la modification + * \param password Nouveau mot de passe (généré par defaut si non communiqué) + * \param isencrypted 0 ou 1 si il faut crypter le mot de passe en base (0 par défaut) + * \return string mot de passe, < 0 si erreur + */ function password($user, $password='', $isencrypted = 0) { global $langs; @@ -865,7 +865,6 @@ class User { $sqlpass = $password; } - $this->pass=$password; $sql = "UPDATE ".MAIN_DB_PREFIX."user SET pass = '".addslashes($sqlpass)."'"; $sql.= " WHERE rowid = ".$this->id; @@ -874,6 +873,15 @@ class User { if ($this->db->affected_rows()) { + $this->pass=$password; + + // Appel des triggers + include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php"); + $interface=new Interfaces($this->db); + $result=$interface->run_triggers('USER_NEW_PASSWORD',$this,$user,$lang,$conf); + if ($result < 0) $error++; + // Fin appel triggers + return $this->pass; } else { diff --git a/htdocs/user/fiche.php b/htdocs/user/fiche.php index ae03e0da965..516146b54b7 100644 --- a/htdocs/user/fiche.php +++ b/htdocs/user/fiche.php @@ -212,7 +212,7 @@ if ($_POST["action"] == 'update' && $caneditperms) } if ($ret >= 0 && isset($_POST["password"]) && $_POST["password"] !='' ) { - $ret=$edituser->password($user,$password,$conf->password_encrypted); + $ret=$edituser->password($user,$password,$conf->password_encrypted,1); if ($ret < 0) { $message.='
'.$edituser->error.'
';