Example #1
0
 /**
  * Initializes the session system.
  */
 private static function initialize()
 {
     // Make sure it's not initialized already
     if (self::$initialized) {
         return;
     }
     // See if we were given a session id explicitly
     // If so we also need a matching token to allow it
     $setSid = false;
     if (Input::exists('_sid')) {
         session_id(Input::get('_sid'));
         $setSid = true;
     }
     // Start the default PHP session
     self::$prefix = crc32(APP_SALT) . '_';
     session_name('session');
     session_start();
     // Set the initialized flag
     self::$initialized = true;
     // Make sure the token is good before we allow
     // explicit session id setting
     if ($setSid) {
         Auth::checkToken();
     }
 }
Example #2
0
 /**
  * Determines the current route and runs it.
  */
 public static function run()
 {
     // Pull the current path out of the get arguments directly
     $length = strlen(APP_RELATIVE_URL) == 0 ? 0 : strlen(APP_RELATIVE_URL) + 1;
     $path = substr(urldecode(parse_url(filter_input(INPUT_SERVER, 'REQUEST_URI'), PHP_URL_PATH)), $length);
     try {
         // Get the appropriate route for the path
         $route = Routes::get($path);
         // If our route is null, we should 404
         if ($route == null) {
             header('Status: 404 Not Found', true, 404);
             View::renderView('404');
             return;
         }
         // See whther or not we have to check the token
         if ($route->isTokenNeeded()) {
             Auth::checkToken();
         }
         // Get the current path variables
         self::$currentPathVariables = self::pullVariables($path, $route);
         // Run the route
         $route->run();
         // See if the last rendered path variable needs to be set
         if (View::hasRenderedView()) {
             Session::set(self::LAST_RENDERED_PATH_KEY, $path);
         }
     } catch (Exception $ex) {
         View::renderJson($ex->getMessage(), false);
         exit;
     }
 }
Example #3
0
function demandeRecupPass()
{
    $addrMail = '';
    if (isset($_REQUEST['mail'])) {
        $addrMail = $_REQUEST['mail'];
    }
    $retour;
    $arch = new Archiviste();
    $user = new Archivable('User');
    $user->set('mail', $addrMail);
    $users = $arch->restituer($user);
    if (count($users) == 1) {
        $userTrouve = $users[0];
        $auth = new Auth();
        //on verifie qu'il n'y a pas deja une demande en cours
        $tokenPresent = $auth->checkToken('mail', $addrMail);
        if ($tokenPresent) {
            $retour = ['recup' => 'doublon'];
        } else {
            $nomSite = Config::get('nomSite');
            $adresseSite = Config::get('adresseSite');
            $expediteur = '"' . $nomSite . '"<robot@' . $adresseSite . '>';
            $sujet = "Demande de reinitialisation de votre mot de passe";
            $cleToken = $auth->genererToken(20);
            $message = 'Bonjour ' . $userTrouve->get('login') . ', <br />' . PHP_EOL . '<br />' . PHP_EOL . 'Vous avez fait une demande de récupération de mot de passe:<br />' . PHP_EOL . '<br />' . PHP_EOL . 'Pour generer un nouveau mot de passe et le recevoir cliquez sur le lien suivant : <a href="http://' . $adresseSite . '/#p:recuPass&t:' . $cleToken . '">http://' . $adresseSite . '/#p:recuPass&t:' . $cleToken . '</a><br />' . PHP_EOL . '<br />' . PHP_EOL . 'Ceci est un message automatique. Merci de ne pas y repondre.';
            Mail::envoyer($addrMail, $expediteur, $sujet, $message);
            $auth->enregistrerRecuPass($addrMail, $userTrouve->get('login'), $cleToken);
            $retour = ['recup' => 'envoiOK'];
        }
    } else {
        $retour = ['recup' => 'userNOK'];
    }
    return $retour;
}
Example #4
0
function validRecupPass(&$vueAuth)
{
    $auth = new Auth();
    $cleToken = 'null';
    if (isset($_REQUEST['t'])) {
        $cleToken = $_REQUEST['t'];
    }
    $token = $auth->checkToken('cle', $cleToken);
    if ($token) {
        $arch = new Archiviste();
        $newPass = $auth->genererToken(12);
        $user = new User();
        $userNew = new User();
        $user->set('mail', $token->get('mail'));
        $userNew->set('pass', md5($newPass));
        $nomSite = Config::getVal('nom');
        $adresseSite = Config::getVal('adresse');
        $expediteur = '"' . $nomSite . '"<robot@' . $adresseSite . '>';
        $sujet = "Votre nouveau mot de passe";
        $message = 'Bonjour ' . $token->get('login') . ', <br />' . PHP_EOL . '<br />' . PHP_EOL . 'Suite a votre demande de récupération, voici votre nouveau de mot de passe : <b>' . $newPass . '</b><br />' . PHP_EOL . '<br />' . PHP_EOL . 'Ceci est un message automatique. Merci de ne pas y repondre.';
        Mail::envoyer($token->get('mail'), $expediteur, $sujet, $message);
        $arch->modifier($user, $userNew);
        $arch->supprimer($token);
        $vueAuth->validRecupPassOk();
    } else {
        $vueAuth->validRecupPassNOk();
    }
}