|
|
| Line 50: |
Line 50: |
| El #1# representa la carga de una pila de librerias que vamos a usar, y la inicialización del contexto de la ejecución de código PHP (idioma, configuración, usuario, etc.). | | El #1# representa la carga de una pila de librerias que vamos a usar, y la inicialización del contexto de la ejecución de código PHP (idioma, configuración, usuario, etc.). |
|
| |
|
| El #2# representa la ejecución del código específico para la autenticación: La verificación de que estamos en una sesión iniciada y de lo contrario mostar la pantalla de login. Aquí es donde se inicializa el bojeto usuario: | | El #2# representa la ejecución del código específico para la autenticación: La verificación de que estamos en una sesión iniciada y de lo contrario mostar la pantalla de login. |
|
| |
|
| La ejecución del login, se presenta como sigue:
| | The #3# is to check business permissions and show the page. |
|
| |
|
| <source lang="php">
| |
| $authmode=array('http','dolibarr');
| |
| if (isset($dolibarr_auto_user)) $authmode=array('auto');
| |
| // Si la demande du login a déjà eu lieu, on le récupère depuis la session
| |
| // sinon appel du module qui réalise sa demande.
| |
| // A l'issu de cette phase, la variable $login sera définie.
| |
| $login='';
| |
| if (! session_id() || ! isset($_SESSION["dol_user"]))
| |
| {
| |
| # Procédure de login. Affiche page login #
| |
| }
| |
| else
| |
| {
| |
| // On est déjà en session
| |
| $login=$_SESSION["dol_user"];
| |
| }
| |
| // Charge l'objet user depuis son login
| |
| $result=$user->fetch($login);
| |
| if ($result <= 0)
| |
| {
| |
| dolibarr_print_error($db,$langs->trans("ErrorCantLoadUserFromDolibarrDatabase"));
| |
| exit;
| |
| }
| |
| // Est-ce une nouvelle session
| |
| if (! isset($_SESSION["dol_user"]))
| |
| {
| |
| // Nouvelle session pour ce login
| |
| dolibarr_syslog("New session in DOLSESSID_".$dolibarr_main_db_name.": ".session_id());
| |
| $user->update_last_login_date();
| |
| $_SESSION["dol_user"]=$user;
| |
| }
| |
| </source>
| |
|
| |
| Pero analizando con más detalle el código de llamada del método de verificación del conjunto usuario/contraseña (hay varios métodos disponibles, por lo que varias llamadas son posibles, debiendo ser mutuamente excluyentes).
| |
|
| |
| <source lang="php">
| |
| session_name("DOLSESSID_".$dolibarr_main_db_name);
| |
| session_start();
| |
| // Si on rentre ici suite a soumission d'un couple user/password alors
| |
| // Selon la valeur dolibarr_main_authentication, on appelle la fonction
| |
| // dans le bon fichier qui verifie si un couple user/mot de passe est correcte
| |
| // Sinon, on affiche la page de login
| |
| </source>
| |
|
| |
|
| == Los módulos de login == | | == Los módulos de login == |