Fichier FrameBeurk
Fmbk/Module/Uzers/User/Maj/loginUser.php
<?php //FrameBeurk V0.65 Copyright ToolOscope 2016. Licence CeCILL-C.
if (Uzers_estLogue())
Beurk_messageEtape('Session en cours', true); //se déloguer avant de se reloguer !
elseif (! isset($_POST['MotDePasse']))
Beurk_messageEtape('Mot de passe obligatoire', true);
elseif (! isset($_POST['User']))
Beurk_messageEtape('Code utilisateur obligatoire', true);
elseif (! preg_match ('#^[a-zA-Z0-9_-]+$#', $_POST['User']))
$TRANSAC['StatutLogin'] = 6; // user invalide
else {
$User = $_POST['User'];
$result = db_QUERY("SELECT IdUser, MotDePasse, IdEtat, IdStyle FROM Uzers_User WHERE User = '" . Beurk_Request2DB($User) . "'");
if (list($IdUser, $VraiMotDePasse, $IdEtatUser, $IdStyle) = db_FETCH_ROW($result)) {
if (md5($_POST['MotDePasse']) != $VraiMotDePasse)
$TRANSAC['StatutLogin'] = 5; // mot de passe faux
elseif ($IdEtatUser != Beurk_id('V'))
$TRANSAC['StatutLogin'] = 7; // User inactive
// User et mot de passe OK
else {
//Si le User a une feuille de style valide, on l'applique
if (Beurk_estDeType($IdMaj) == 'Style') // il faudrait aussi vérifier que le style est bien proposé par le site !
$DIALOG['Style'] = Beurk_terminal($IdStyle);
//chargement des groupes du User
$Groupes = $CONFIG['Controle']['Groupes']['ALL']; // groupe par défaut pour tout le monde
$result2 = db_QUERY("SELECT IdGroupe FROM Uzers_UserGroupe WHERE IdUser = '$IdUser' AND IdEtat = '" . Beurk_id('V') . "'");
while (list($IdGroupe) = db_FETCH_ROW($result2))
$Groupes .= ',' . $IdGroupe;
db_FREE($result2);
//insertion de la session en base
db_QUERY('INSERT INTO Uzers_UserSession (IdUser, TsDeb, TsFin, IdEtat, NbTransac, IdStyle, AdresseIP, Groupes) '
. "VALUES ('$IdUser', '" . $TRANSAC['Stat']['TsBeurkIni'] . "', '" . $TRANSAC['Stat']['TsBeurkIni'] ."', '" . Beurk_id('V') . "', 1, '$IdStyle', '"
. $_SERVER['REMOTE_ADDR'] . "', '$Groupes')");
//stockage dans le dialogue
$DIALOG['IdUser'] = $IdUser;
$DIALOG['User'] = $User;
$DIALOG['Groupes'] = explode(',', $Groupes);
$DIALOG['TempsDebSession'] = $TRANSAC['Stat']['TsBeurkIni'];
$TRANSAC['StatutLogin'] = -1;
$DIALOG['IdEtatsAutorises'] = Uzers_listeEtats();
$DIALOG['Permissions'] = array(); //réinit des permissions stockées en session
}
} else // user non trouvé en table
$TRANSAC['StatutLogin'] = 6; // user invalide
db_FREE($result);
}