Autentificación: Difference between revisions

m
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 ==