/[dolibarr]/dolibarr/htdocs/main.inc.php
ViewVC logotype

Diff of /dolibarr/htdocs/main.inc.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.167 by eldy, Tue Nov 1 15:58:51 2005 UTC revision 1.168 by eldy, Tue Nov 1 17:48:46 2005 UTC
# Line 39  require_once("master.inc.php"); Line 39  require_once("master.inc.php");
39  // Verification du login.  // Verification du login.
40  // Cette verification est faite pour chaque accès. Après l'authentification,  // Cette verification est faite pour chaque accès. Après l'authentification,
41  // l'objet $user est initialisée. Notament $user->id, $user->login et $user->nom, $user->prenom  // l'objet $user est initialisée. Notament $user->id, $user->login et $user->nom, $user->prenom
42  // \todo : Stocker les infos de $user en session persistente php et ajouter recup dans le fetch  // \todo Stocker les infos de $user en session persistente php et ajouter recup dans le fetch
43  //         depuis la sessions pour ne pas avoir a acceder a la base a chaque acces de page.  //       depuis la sessions pour ne pas avoir a acceder a la base a chaque acces de page.
 // \todo : Utiliser $user->id pour stocker l'id de l'auteur dans les tables plutot que $_SERVER["REMOTE_USER"]  
44    
45  if (!empty ($_SERVER["REMOTE_USER"]))  // MODE 1: Pas d'identification car forcé
46    if (! empty($dolibarr_auto_user))
47  {  {
48      // Authentification Apache OK, on va chercher les infos du user      // Mode forcé sur un utilisateur (pour debug, demo, ...), on initialise la session
49      $user->fetch($_SERVER["REMOTE_USER"]);      if (! session_id()) {
50      dolibarr_syslog ("Authentification ok (en mode Basic)");          session_name("DOLSESSID_".$dolibarr_main_db_name);
51            session_start();
52        }
53    
54      //exit;      $user->fetch($dolibarr_auto_user);
55        dolibarr_syslog ("Authentification ok (en mode force)");
56  }  }
57    // MODE 2: Identification HTTP Basic
58    elseif (! empty($_SERVER["REMOTE_USER"]))
59    {
60        // Authentification Apache OK, on initialise la session
61        if (! session_id()) {
62            session_name("DOLSESSID_".$dolibarr_main_db_name);
63            session_start();
64        }
65    
66        if (isset($_SESSION["dol_user"]))
67        {
68            // Session existante pour ce login
69            $user->fetch($_SERVER["REMOTE_USER"]);
70    //        $user=$_SESSION["session_user"];
71            dolibarr_syslog ("Authentification ok (en mode Basic)");
72        }
73        else
74        {
75            // Nouvelle session pour ce login
76            $user->fetch($_SERVER["REMOTE_USER"]);
77            dolibarr_syslog ("Authentification ok (en mode Basic) - nouvelle session");
78            $user->update_last_login_date();
79            $_SESSION["dol_user"]=$user;
80        }
81    }
82    // MODE 3: Identification depuis base de donnée
83  else  else
84  {  {
85      // Authentification Apache KO ou non active      // Authentification Apache KO ou non active, pas de mode forcé, on demande le login
86      if (!empty ($dolibarr_auto_user))      require_once(DOL_DOCUMENT_ROOT."/includes/pear/Auth/Auth.php");
87    
88        $pear = $dolibarr_main_db_type.'://'.$dolibarr_main_db_user.':'.$dolibarr_main_db_pass.'@'.$dolibarr_main_db_host.'/'.$dolibarr_main_db_name;
89    
90        $params = array(
91        "dsn" =>$pear,
92        "table" => MAIN_DB_PREFIX."user",
93        "usernamecol" => "login",
94        "passwordcol" => "pass",
95        "cryptType" => "none",
96        );
97    
98        $aDol = new DOLIAuth("DB", $params, "loginfunction");
99        $aDol->setSessionName("DOLSESSID_".$dolibarr_main_db_name);
100        $aDol->start();
101        $result = $aDol->getAuth();
102        if ($result)
103      {      {
104          // Mode forcé sur un utilisateur (pour debug, demo, ...)          // Authentification Auth OK, on va chercher les infos du user
105          $user->fetch($dolibarr_auto_user);          $user->fetch($aDol->getUsername());
106          dolibarr_syslog ("Authentification ok (en mode force)");          dolibarr_syslog ("Authentification ok (en mode Pear)");
107          if (isset($_POST["loginfunction"]))          if (isset($_POST["loginfunction"]))
108          {          {
109              // Si phase de login initial              // Si phase de login initial
# Line 67  else Line 112  else
112      }      }
113      else      else
114      {      {
115          // Pas d'authentification Apache ni de mode forcé, on demande le login          if (isset($_POST["loginfunction"]))
         require_once DOL_DOCUMENT_ROOT."/includes/pear/Auth/Auth.php";  
   
         $pear = $dolibarr_main_db_type.'://'.$dolibarr_main_db_user.':'.$dolibarr_main_db_pass.'@'.$dolibarr_main_db_host.'/'.$dolibarr_main_db_name;  
   
         $params = array(  
         "dsn" =>$pear,  
         "table" => MAIN_DB_PREFIX."user",  
         "usernamecol" => "login",  
         "passwordcol" => "pass",  
         "cryptType" => "none",  
         );  
   
         $aDol = new DOLIAuth("DB", $params, "loginfunction");  
         $aDol->setSessionName("DOLSESSID_".$dolibarr_main_db_name);  
         $aDol->start();  
         $result = $aDol->getAuth();  
         if ($result)  
116          {          {
117              // Authentification Auth OK, on va chercher les infos du user              // Echec authentification
118              $user->fetch($aDol->getUsername());              dolibarr_syslog("Authentification ko (en mode Pear) pour '".$_POST["username"]."'");
             dolibarr_syslog ("Authentification ok (en mode Pear)");  
             if (isset($_POST["loginfunction"]))  
             {  
                 // Si phase de login initial  
                 $user->update_last_login_date();  
             }  
119          }          }
120          else          else
121          {          {
122              if (isset($_POST["loginfunction"]))              // Non authentifié
123              {              dolibarr_syslog("Authentification non réalisé");
                 // Echec authentification  
                 dolibarr_syslog("Authentification ko (en mode Pear) pour '".$_POST["username"]."'");  
             }  
             else  
             {  
                 // Non authentifié  
                 dolibarr_syslog("Authentification non réalisé");  
             }  
             // Le début de la page a été affiché par loginfunction. On ferme juste la page  
             print "</div>\n</div>\n</body>\n</html>";  
             exit;  
124          }          }
125            // Le début de la page a été affiché par loginfunction. On ferme juste la page
126            print "</div>\n</div>\n</body>\n</html>";
127            exit;
128      }      }
129  }  }
130    
# Line 197  $langs->load("main"); Line 211  $langs->load("main");
211   */   */
212  if (defined("MAIN_NOT_INSTALLED"))  if (defined("MAIN_NOT_INSTALLED"))
213  {  {
214    Header("Location: ".DOL_URL_ROOT."/install/index.php");      Header("Location: ".DOL_URL_ROOT."/install/index.php");
215        exit;
216  }  }
217    
218  // Constantes utilisées pour définir le nombre de lignes des textarea  // Constantes utilisées pour définir le nombre de lignes des textarea

Legend:
Removed from v.1.167  
changed lines
  Added in v.1.168

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26