account.lost.php 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php require_once __DIR__.DIRECTORY_SEPARATOR.'header.php';
  2. $accountMenu = array();
  3. $_['section'] = !isset($_['section']) ? 'global': $_['section'];
  4. $page = basename($_SERVER['PHP_SELF']);
  5. ?>
  6. <div class="row justify-content-md-center">
  7. <div class="col-md-9 text-center">
  8. <h5><i class="fas fa-unlock"></i> Mot de passe oublié</h5>
  9. <?php if(isset($_['token'])):
  10. $tokenInfos = explode('::',base64_decode($_['token']));
  11. if(count($tokenInfos)<2) throw new Exception("Token incorrect");
  12. list($login,$token) = $tokenInfos;
  13. global $conf;
  14. $baseToken = UserPreference::load(array('user'=>$login,'key'=>'lost_password'));
  15. if (!$baseToken) throw new Exception("Token incorrect ou inexistant");
  16. if ($baseToken->value!=$token) throw new Exception("Token incorrect ou inexistant");
  17. UserPreference::deleteById($baseToken->id);
  18. unset($_SESSION['users']);
  19. $users = User::getAll(true);
  20. foreach($users as $user){
  21. if($user->login==$login){
  22. global $myUser,$myFirm,$_;
  23. $user->loadPreferences();
  24. $user->loadRanks();
  25. $defaultFirm = !empty($user->preference('default_firm')) ? $user->preferences['default_firm'] : key($user->firms);
  26. $_SESSION['firm'] = serialize(Firm::getById($defaultFirm));
  27. $myFirm = isset($_SESSION['firm']) ? unserialize($_SESSION['firm']) : new Firm();
  28. $user->loadRights();
  29. Plugin::callHook("user_login", array(&$user, $user->login,null,true,true,true));
  30. if($user == false || empty($user->login)) throw new Exception("Utilisateur inexistant");
  31. $myUser = $user;
  32. $_SESSION['currentUser'] = serialize($myUser);
  33. break;
  34. }
  35. }
  36. if(!$myUser->connected()) throw new Exception("Erreur lors de la récuperation du compte, veuillez contacter un administrateur");
  37. ?>
  38. <h6>Bienvenue <?php echo $myUser->fullName(); ?>!</h6>
  39. <p>Veuillez changer votre mot de passe dans la rubrique <a href="account.php?section=global">"Mon compte"</a></p>
  40. <?php else:
  41. if($myUser->connected()) throw new Exception("Vous devez être déconnecté pour accéder à cette fonctionnalité",401);
  42. ?>
  43. <p>Veuillez remplir le formulaire ci dessous pour procéder au changement de mot de passe</p>
  44. <p>Un e-mail sera envoyé à la boite spécifiée si celle ci est liée à un compte.</p>
  45. <label>Adresse e-mail du compte</label>
  46. <input class="form-control col-sm-3 m-auto text-center" placeholder="email@email.com" type="text" id="mail">
  47. <div class="btn btn-primary col-sm-3 mt-2" id="lost-password-send" onclick="account_lost_password(this);"><i class="far fa-envelope-open"></i> Envoyer</div>
  48. <?php endif; ?>
  49. </div>
  50. </div>
  51. <?php require_once __ROOT__.'footer.php' ?>