Sparation reinit mot de passe de envoi

This commit is contained in:
Laurent Destailleur 2005-07-01 22:09:12 +00:00
parent 947989613d
commit ea985b8ca1
2 changed files with 84 additions and 61 deletions

View File

@ -334,11 +334,17 @@ if ($user->liste_limit > 0)
$conf->liste_limit = $user->liste_limit; $conf->liste_limit = $user->liste_limit;
} }
if (defined('MAIN_MAIL_FROM'))
{
$conf->email_from=MAIN_MAIL_FROM;
}
if (defined('MAIN_THEME')) if (defined('MAIN_THEME'))
{ {
$conf->theme=MAIN_THEME; $conf->theme=MAIN_THEME;
$conf->css = "theme/".$conf->theme."/".$conf->theme.".css"; $conf->css = "theme/".$conf->theme."/".$conf->theme.".css";
} }
if (defined("MAIN_MAIL_RESIL")) if (defined("MAIN_MAIL_RESIL"))
{ {
$conf->adherent->email_resil=MAIN_MAIL_RESIL; $conf->adherent->email_resil=MAIN_MAIL_RESIL;

View File

@ -675,73 +675,90 @@ class User
} }
/** /**
* \brief Change le mot de passe d'un utilisateur et l'envoie par mail * \brief Change le mot de passe d'un utilisateur
* \param user Object user de l'utilisateur qui fait la modification * \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 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) * \param isencrypted 0 ou 1 si il faut crypter le mot de passe en base (0 par défaut)
* \return int <0 si erreur, 0 si changement ok mais envoi mail ko, 1 si ok * \return string mot de passe, < 0 si erreur
*/ */
function password($user, $password='', $isencrypted = 0)
function password($user, $password='', $isencrypted = 0)
{ {
global $langs; global $langs;
$longueurmotdepasse=8;
if (! $password)
{ if (! $password)
$password = strtolower(substr(md5(uniqid(rand())),0,6)); {
} $password = strtolower(substr(md5(uniqid(rand())),0,$longueurmotdepasse));
}
if ($isencrypted)
{ if ($isencrypted)
$sqlpass = crypt($password, "CRYPT_STD_DES"); {
} $sqlpass = crypt($password, "CRYPT_STD_DES");
else }
{ else
$sqlpass = $password; {
} $sqlpass = $password;
$this->pass=$password; }
$sql = "UPDATE ".MAIN_DB_PREFIX."user SET pass = '".$sqlpass."'"; $this->pass=$password;
$sql .= " WHERE rowid = $this->id"; $sql = "UPDATE ".MAIN_DB_PREFIX."user SET pass = '".$sqlpass."'";
$sql.= " WHERE rowid = $this->id";
$result = $this->db->query($sql);
$result = $this->db->query($sql);
if ($result) if ($result)
{ {
if ($this->db->affected_rows()) if ($this->db->affected_rows())
{ {
return $this->pass;
$mesg .= "Bonjour,\n\n"; }
$mesg .= "Votre mot de passe pour accéder à Dolibarr a été changé :\n\n"; else {
$mesg .= $langs->trans("Login")." : $this->login\n"; return -2;
$mesg .= $langs->trans("Password")." : $password\n\n"; }
}
$mesg .= "Adresse : http://".$_SERVER["HTTP_HOST"].DOL_URL_ROOT; else
$mesg .= "\n\n"; {
$mesg .= "--\n"; dolibarr_print_error($this->db);
$mesg.= $user->fullname; return -1;
}
if (mail($this->email, $langs->trans("SubjectNewPassword"), $mesg))
{
return 1;
}
else
{
$this->error=$langs->trans("ErrorFailtedToSendPassword");
return 0;
}
}
else {
return -2;
}
}
else
{
dolibarr_print_error($this->db);
return -1;
}
} }
/**
* \brief Envoie mot de passe par mail
* \param user Object user de l'utilisateur qui fait l'envoi
* \param password Nouveau mot de passe
* \return int < 0 si erreur, > 0 si ok
*/
function send_password($user, $password='')
{
global $langs;
require_once DOL_DOCUMENT_ROOT."/lib/CMailFile.class.php";
$subject = $langs->trans("SubjectNewPassword");
$mesg .= "Bonjour,\n\n";
$mesg .= "Votre mot de passe pour accéder à Dolibarr a été changé :\n\n";
$mesg .= $langs->trans("Login")." : $this->login\n";
$mesg .= $langs->trans("Password")." : $password\n\n";
$mesg .= "Adresse : http://".$_SERVER["HTTP_HOST"].DOL_URL_ROOT;
$mesg .= "\n\n";
$mesg .= "--\n";
$mesg.= $user->fullname;
$mailfile = new CMailFile($subject,$this->email,$conf->email_from,$mesg,array(),array(),array());
if ($mailfile->sendfile())
{
return 1;
}
else
{
$this->error=$langs->trans("ErrorFailtedToSendPassword");
return -1;
}
}
/** /**
* \brief Renvoie la dernière erreur fonctionnelle de manipulation de l'objet * \brief Renvoie la dernière erreur fonctionnelle de manipulation de l'objet
* \return string chaine erreur * \return string chaine erreur