예제 #1
0
/**
* - Cas Login_Go :
* . 
*      Le cas Login_Go patati patata....
*/
function Login_Go($data_in = array())
{
    Lib_myLog("action: " . $data_in['action']);
    foreach ($GLOBALS['tab_globals'] as $global) {
        global ${$global};
    }
    Lib_myLog("IN: ", $data_in);
    Lib_myLog("FILE: ", __FILE__);
    /*=============*/
    Lib_myLog("Suppression du controle de tentatives");
    $interdiction = Interdiction_recuperer($utilisateur->nom_utilisateur, $_SERVER['REMOTE_ADDR']);
    $interdiction->DEL();
    // Génération de l'identifiant de session...
    $session = Sessions_new();
    Sessions_writeLog($utilisateur->nom_utilisateur, $ip, __LOG_IN__, $session);
    /*=============*/
    Lib_myLog("Nouvelle session: {$session}");
    setcookie($GLOBALS['instance'] . '_session', $session, 0, '/');
    $_COOKIE[$GLOBALS['instance'] . '_session'] = $session;
    /*=============*/
    Lib_myLog("Langue recuperee: {$lang}");
    /*=============*/
    Lib_myLog("Taille recuperee: " . $data_in['taille_ecran']);
    // On sauvegarde la valeur de la langue et de la taille d'écran dans les variables de la session
    $tab_session['lang'] = $lang;
    $tab_session['taille_ecran'] = $data_in['taille_ecran'];
    $tab_session['taille_tableaux'] = $GLOBALS['taille_tableaux'];
    /*=============*/
    Lib_myLog("Recherche des modules autorises");
    $groupe = Groupe_recuperer($utilisateur->nom_groupe);
    $tab_groupe = $groupe->getTab();
    foreach ($tab_groupe['modules'] as $module) {
        /*=============*/
        Lib_myLog("Module autorise: {$module}");
        $tab_session[$module] = 1;
    }
    $tab_utilisateur = $utilisateur->getTab();
    if (!empty($tab_utilisateur['droits'])) {
        /*=============*/
        Lib_myLog("Affectation des droits de l'utilisateur");
        foreach ($tab_utilisateur['droits'] as $champ => $droits) {
            /*=============*/
            Lib_myLog("Champ autorise : {$champ}, droits : {$droits}");
            $tab_session[$champ] = $droits;
        }
    }
    $tab_session['nom_utilisateur'] = $utilisateur->nom_utilisateur;
    $tab_session['id_utilisateur'] = $utilisateur->id_utilisateur;
    $tab_session['nom_groupe'] = $utilisateur->nom_groupe;
    // Pour sécuriser davantage le système, on mémorise le user_agent de l'utilisateur
    $tab_session['user_agent'] = $_SERVER['HTTP_USER_AGENT'];
    // On initialise le fichier qui nous sert à stocker les données de la session dans /tmp
    /*=============*/
    Lib_myLog("Redirection sur accueil");
    $racine = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
    // C'est l'accueil qui doit effectuer la redirection, on ne doit jamais "configurer" l'actions.php de dilasys !
    echo "<html>\n";
    echo "<head>\n";
    echo "<meta http-equiv=\"refresh\" content=\"0;URL={$racine}/accueil.php?groupe={$utilisateur->nom_groupe}\">";
    echo "</head>\n";
    echo "<body>\n";
    echo "</body>\n";
    echo "<html>\n";
    // On sort pour ne pas continuer à afficher Login_Admin.php!
    Lib_writeData($tab_session, "session_" . $session);
    exit;
}
예제 #2
0
 function Sessions_auth($session, $adresse_ip)
 {
     if (Sessions_exists($session)) {
         $ip_BASE = Sessions_getAdresseIp($session);
         if ($ip_BASE == $adresse_ip) {
             return true;
         }
     }
     Sessions_writeLog("{$session}", $adresse_ip, __DUPE_FORCE_OUT__);
     return false;
 }