RewriteCond %{REQUEST_FILENAME} -d\r
RewriteRule ^.*$ - [NC,L]\r
\r
- RewriteRule ^([-,_a-zA-Z0-9\./]+)$ index.php/$1 [L]\r
+ RewriteRule ^([-,_a-zA-Z0-9\./\%\@]+)$ index.php/$1 [L]\r
</IfModule>\r
\r
<IfModule mod_mime.c>\r
if (isset($r->tva_intra)) {\r
$utilisateur->tva_intra = $r->tva_intra;\r
}\r
+ $utilisateur->reset_password = $r->reset_password;\r
return $utilisateur;\r
}\r
\r
$utilisateur->notes = '';\r
$utilisateur->entreprise = 0;\r
$utilisateur->enabled = 1;\r
+ $utilisateur->reset_password = '';\r
$utilisateur->ws_settings = array('resolution' => 150, 'method' => 0, 'quality' => 85, 'objects' => 1800);\r
return $utilisateur;\r
}\r
$c->update('WHERE id=\'' . $this->con->escape($data['utilisateur_id']) . '\'');\r
return $this->selectById($data['utilisateur_id']);\r
}\r
- }catch (Exception $e){\r
+ } catch (Exception $e) {\r
echo $e->getMessage();\r
}\r
}\r
return $c->update('WHERE id=\'' . $this->con->escape($utilisateur_id) . '\'');\r
}\r
\r
+\r
public function changeMotdepasse($utilisateur_id, $nouveau)\r
{\r
$c = $this->con->openCursor('extranet_users.user');\r
return $c->update('WHERE id=\'' . $this->con->escape($utilisateur_id) . '\'');\r
}\r
\r
+ public function resetPassword($utilisateur_id)\r
+ {\r
+ $characters = '0123456789abcdefghijklmnopqrstuvwxyz';\r
+ $charactersLength = strlen($characters);\r
+ $randomString = '';\r
+ for ($i = 0; $i < 60; $i++) {\r
+ $randomString .= $characters[random_int(0, $charactersLength - 1)];\r
+ }\r
+\r
+ $c = $this->con->openCursor('extranet_users.user');\r
+ $c->e1_resetpassword = $randomString;\r
+ if ($c->update('WHERE id=\'' . $this->con->escape($utilisateur_id) . '\'')) {\r
+ return $randomString;\r
+ } else {\r
+ return false;\r
+ }\r
+ }\r
+\r
public function supprime($utilisateur_id)\r
{\r
$ok = $this->con->execute('DELETE FROM e2_u WHERE utilisateur_id=\'' . $this->con->escape($utilisateur_id) . '\'');\r
protected $ws_password;\r
protected $ca;\r
protected $enabled;\r
+ protected $reset_password;\r
\r
public function getEmail() {\r
return trim($this->prenom . ' ' . $this->nom . '<' . $this->email . '>');\r
public static function motdepasseOublie($args, &$x)
{
- self::form('recupMotdepasse', 'Mot de passe oublié ?', commonUrl::motdepasseOublie($args), __('Recevoir mon mot de passe par e-mail'));
+ self::form('recupMotdepasse', 'Mot de passe oublié ?', commonUrl::motdepasseOublie($args), __('Réinitialiser mon mot de passe'));
}
public static function mesParametres($args, &$x)
$x->addRedirection();
}
+ public static function resetPassword($args, &$x)
+ {
+
+ }
+
public static function recupMotdepasse($args, &$x)
{
global $core;
$dao = new commonDAOUtilisateur($core->con);
$utilisateur = $dao->selectByEmail($_POST['email']);
+ $okmsg = __('Nous vous avons envoyé un e-mail. Veuillez le consulter pour poursuivre la procédure.');
+
if (!is_null($utilisateur) && $utilisateur->enabled) {
+
+ $rand = $dao->resetPassword($utilisateur->utilisateur_id);
+
$mail = new cubeMail();
$mail->charset = 'UTF-8';
$mail->from = FROM_NAME . '<' . FROM_EMAIL . '>';
$mail->bcc = MAIL_BCC;
- $mail->subject = '[' . EMAIL_SUBJECT . '] ' . __('Récupération de vos identifiants');
+ $mail->subject = '[' . EMAIL_SUBJECT . '] ' . __('Réinitialisation de votre mot de passe');
$mail->to = $utilisateur->prenom . ' ' . $utilisateur->nom . '<' . $utilisateur->email . '>';
$body = __('Bonjour,') . "\r\n\r\n";
- $body .= ASK_IDENT . "\r\n";
- $body .= __('Voici toutes les informations vous permettant de vous y connecter à nouveau :') . "\r\n\r\n";
- $body .= __('Adresse') . ' : https://' . $_SERVER['HTTP_HOST'] . '/' . "\r\n";
- $body .= __('Identifiant') . ' : ' . $utilisateur->email . "\r\n";
- $body .= __('Mot de passe') . ' : ' . $utilisateur->password . "\r\n\r\n";
+ $body .= __('Vous recevez cet email car nous avons reçu une demander de réinitialisation de mot de passe pour votre compte. Veuillez cliquer sur le lien ci-dessous pour poursuivre la procédure : ') . "\r\n";
+ $body .= 'https://' . $_SERVER['HTTP_HOST'] . '/resetPassword/' . $utilisateur->email . '/' . $rand . "/\r\n\r\n";
$body .= __('Cordialement,') . "\r\n";
$body .= TEAM_NAME;
$mail->body = $body;
$ok = $mail->send();
- $message = $ok ? __('Vos identifiants vous ont été envoyé par e-mail') : __("Une erreur s'est produite lors de l'envoi de vos identifiants");
+ $message = $ok ? $okmsg : __("Une erreur s'est produite lors de l'envoi de vos identifiants");
} else {
- $message = __('Cet e-mail ne correspond à aucun utilisateur du système');
+ sleep(2);
+ $message = $okmsg;
}
$x->addAlert($message);
$x->addClosePopup();
$x->addOk('actuel');
}
- if (strlen($_POST['nouveau']) > 10 || strlen($_POST['nouveau']) < 6 || $_POST['nouveau'] != $_POST['confirmation']) {
+ if (strlen($_POST['nouveau']) < 8 || $_POST['nouveau'] != $_POST['confirmation']) {
$x->addError('nouveau', '');
$x->addError('confirmation', '');
$ok = false;
\r
\r
$this->views->createView('e2_u', 'SELECT id AS utilisateur_id, enabled, email, password, e1_ws_password AS ws_password, firstname AS prenom, lastname AS nom, phone AS telephone,e1_mobile AS mobile,e1_fax as fax, locale AS lang,\r
- e1_ws_settings AS ws_settings, e1_settings AS settings, e1_ws_rights AS ws_rights, e1_ws_domains AS ws_domains, e1_login AS login,e1_grade AS grade,\r
+ e1_ws_settings AS ws_settings, e1_settings AS settings, e1_ws_rights AS ws_rights, e1_ws_domains AS ws_domains, e1_login AS login,e1_grade AS grade,e1_resetpassword AS reset_password,\r
JSON_UNQUOTE(address->"$.address") AS adresse,\r
JSON_UNQUOTE(address->"$.postcode") AS code_postal,\r
JSON_UNQUOTE(address->"$.country") AS pays,\r
// Si l'utilisateur n'est pas connecté, on affiche le formulaire\r
// de login\r
\r
- $bypass = array('stats', 'telecharger', 'telechargerr', 'orpiref');\r
+ $bypass = array('stats', 'telecharger', 'telechargerr', 'orpiref', 'resetPassword');\r
\r
if ((!isset($args[0]) || !in_array($args[0], $bypass)) && (is_null($core->user) || !$core->user)) {\r
$args = array('login');\r
return $res;\r
}\r
\r
+ public static function resetPassword($args)\r
+ {\r
+ global $core;\r
+ $dao = new commonDAOUtilisateur($core->con);\r
+ $u = $dao->selectByEmail($args[1]);\r
+ if (!$u || $u->reset_password != $args[2]) {\r
+ http::redirect('/');\r
+ }\r
+\r
+ $res = commonPage::barre();\r
+ $res .= commonPage::tMain();\r
+ $res .= commonPage::bh('resetpassword');\r
+ $res .= '<div class="form">';\r
+ $res .= '<form action="resetPassword" method="post">';\r
+ $res .= '<table>';\r
+ $res .= '<tr><th colspan="2"><strong>' . __('Réinitialisation de votre mot de passe') . '</strong></th></tr>';\r
+ $res .= '<tr><td colspan="2">' . __('Veuillez choisir un mot de passe contenant au moins 8 caractères') . '</td></tr>';\r
+ $res .= '<tr><td>' . __('Votre nouveau mot de passe') . ' : </td><td>' . form::password('new_password', 20, 64, '') . '</td></tr>';\r
+ $res .= '<tr><td>' . __('Confirmation de votre nouveau mot de passe') . ' : </td><td>' . form::password('user_password', 20, 64, '') . '</td></tr>';\r
+ $res .= '<tr><td colspan="2" class="right"><a href="#" class="submit">' . $core->typo->BoutonOK('Réinitialiser le mot de passe') . '</a></td></tr>';\r
+ $res .= '</table>';\r
+ $res .= '</form>';\r
+ $res .= '</div>';\r
+ $res .= commonPage::bf();\r
+ $res .= commonPage::bMain();\r
+ return $res;\r
+ }\r
+\r
public static function logout($args)\r
{\r
if (isset($_SESSION['user_email'])) {\r
}
.b.login {
- width: 325px;
+ width: 450px;
margin: 0 auto;
}
+.b.resetpassword {
+ width: 600px;
+ margin: 0 auto;
+}
+
+
.onglet {
background: url('onglet.png');
background-position: top left;