123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- <?php
- require_once (__DIR__.DIRECTORY_SEPARATOR.'header.php');
- global $conf,$myUser,$myFirm,$_;
- if($myUser->connected()) throw new Exception("Vous devez être déconnecté pour accéder à cette fonctionnalité");
- $_['section'] = !isset($_['section']) ? 'global': $_['section'];
- $accountMenu = array();
- $page = basename($_SERVER['PHP_SELF']);
- if(isset($_['token'])){
- $tokenInfos = explode('::',base64_decode($_['token']));
- if(count($tokenInfos)!=3) throw new Exception("Token expiré ou inexistant");
- list($login,$token,$step) = $tokenInfos;
- $baseToken = UserPreference::load(array('user'=>$login,'key'=>'lost_password'));
- if(!$baseToken || $baseToken->value!=$token) throw new Exception("expiré ou inexistant");
- if(!empty($conf->get('password_lost_mail_expire')) && (time()-$baseToken->created) > strtotime(intval($conf->get('password_lost_mail_expire')).' days', 0)) throw new Exception("Lien de récupération expiré");
- if(!$user = User::load(array('login'=>$login))) throw new Exception("Token expiré ou inexistant");
- }
- ?>
- <div class="row justify-content-md-center">
- <div class="col-lg-7 col-xl-5 text-center mt-3">
- <div class="row justify-content-center">
- <?php if(isset($_['token'])):
- switch($step) {
- case 1:
- ?>
- <h5 class="text-muted text-uppercase col-xl-12"><i class="fas fa-unlock mr-1"></i>Récupération de mot de passe</h5>
- <div class="col-lg-xl-12 my-4">
- <h5>Bienvenue <?php echo $user->fullName(); ?>!</h6>
- <p class="mt-4 mb-2">Veuillez récupérer votre nouveau mot de passe en cliquant sur le bouton ci-dessous :</p>
- <a class="btn btn-primary w-100" href="<?php echo ROOT_URL.'/account.lost.php?token='.base64_encode($user->login.'::'.$token.'::2'); ?>"><i class="fas fa-fw fa-key mr-1"></i>Récupérer le mot de passe</a>
- </div>
- <?php
- break;
- case 2:
- //Suppression de l'indicateur de réinitialisation de mot de passe
- UserPreference::deleteById($baseToken->id);
- //Génération du nouveau mot de passe
- $newPassword = User::generate_password(12);
- $user->password = User::password_encrypt($newPassword);
- $user->save();
- ?>
- <h5 class="text-muted text-uppercase col-xl-12"><i class="fas fa-unlock mr-1"></i>Mot de passe réinitialisé</h5>
- <p class="mt-2 px-3">Bonjour, <?php echo $user->fullName(); ?>,<br>vous pouvez dès à présent vous connecter avec les éléments suivants :</p>
- <ul class="list-unstyled px-5 text-left">
- <li><strong>Identifiant :</strong> <code class="font-weight-bold bg-light p-2 pointer" onclick="select_text(this, event);copy_string($(this).text(), this);"><?php echo $user->login; ?></code></li>
- <li><strong>Mot de passe : </strong><code class="font-weight-bold bg-light p-2 pointer" onclick="select_text(this, event);copy_string($(this).text(), this);"><?php echo $newPassword; ?></code></li>
- </ul>
- <a href="index.php" class="btn btn-success mt-2 w-100" ><i class="fas fa-home"></i> Retour à l'accueil</a>
- <?php
- break;
- default:
- throw new Exception("Token expiré ou inexistant");
- break;
- }
- else: ?>
- <h5 class="text-muted text-uppercase col-xl-12"><i class="fas fa-unlock mr-1"></i>Mot de passe oublié</h5>
- <p class="col-xl-12 my-4">
- Veuillez remplir le formulaire ci dessous pour procéder au changement de mot de passe.<br>
- Un e-mail sera envoyé à la boite spécifiée si celle ci est liée à un compte.
- </p>
- <div class="col-xl-6 col-lg-8">
- <span class="d-block w-100 mb-1"><i class="far fa-fw fa-envelope mr-1"></i><small class="text-muted">Adresse e-mail du compte :</small></span>
- <input class="form-control m-auto text-center" placeholder="email@email.com" type="text" id="mail">
- <div class="btn btn-primary w-100 mt-2" id="lost-password-send" onclick="core_account_lost_password(this);"><i class="far fa-envelope-open"></i> Récupérer</div>
- </div>
- <?php endif; ?>
- </div>
- </div>
- </div>
- <?php require_once (__DIR__.DIRECTORY_SEPARATOR.'footer.php'); ?>
|