From 1b8bde8bbd8f7df99ff533b47a46618d161c8315 Mon Sep 17 00:00:00 2001 From: KONE SOREL Date: Mon, 22 Dec 2025 11:01:19 +0000 Subject: [PATCH] valid --- Controleur/ControleurConnexion.php | 613 +++++++++++++++++++++++++++++ 1 file changed, 613 insertions(+) create mode 100644 Controleur/ControleurConnexion.php diff --git a/Controleur/ControleurConnexion.php b/Controleur/ControleurConnexion.php new file mode 100644 index 0000000..61c4985 --- /dev/null +++ b/Controleur/ControleurConnexion.php @@ -0,0 +1,613 @@ +utilisateur = new Utilisateur(); + $this->menu = new Menu(); + $this->logconnexion = new Logconnexion(); + $this->societeuser = new Societeuser(); + $this->moritio = new Moritio(); + } + + public function index() + { + $this->genererVue(); + } + + public function connecter() + { + if + ( + $this->requete->existeParametre("login") + && + $this->requete->existeParametre("mdp") + ) + { + $langue = $this->requete->getParametre("langue"); + $login = $this->requete->getParametre("login"); + $mdp = $this->requete->getParametre("mdp"); + + $_SESSION['lang'] = $langue; + + // logConnexion + $heureConnexion = date("Y-m-d H:i:s"); + $ipConnexion = $_SERVER['REMOTE_ADDR']; + + $idSaisie = uniqid(); + + $idConnexion = $this->logconnexion->ajouter($login, $heureConnexion, $ipConnexion, $idSaisie); + + // Vidage Tables temporaires + + $_SESSION['idSaisie'] = $idSaisie; + + $this->utilisateur->viderTablesTemporairesUser($login); + + $ipbanni = $this->logconnexion->ipbanni($ipConnexion); + + + + if($ipbanni>"0") + { + if ($_SESSION['lang']=="en_US") + { + $this->genererVue(array('msgErreur' => "IP address banned!"), "index"); + exit(); + } + else + { + $this->genererVue(array('msgErreur' => "Adresse IP banni!"), "index"); + exit(); + } + } + + $userbanni = $this->logconnexion->userbanni($login); + + if($userbanni>"0") + { + if ($_SESSION['lang']=="en_US") + { + $this->genererVue(array('msgErreur' => "Login banned!"), "index"); + exit(); + } + else + { + $this->genererVue(array('msgErreur' => "Login banni!"), "index"); + exit(); + } + } + + $nbTentativeConnexionMax = $this->societeuser->get_nbTentativeConnexion(); + + + if (!isset($_SESSION['nbTentativeConnexion'])) + { + $_SESSION['nbTentativeConnexion'] = '0'; + } + + $nbTentativeConnexion = $_SESSION['nbTentativeConnexion']; + + + if($nbTentativeConnexion>$nbTentativeConnexionMax) + { + if ($_SESSION['lang']=="en_US") + { + $this->genererVue(array('msgErreur' => "Too many connection attempts!"), "index"); + exit(); + } + else + { + $this->genererVue(array('msgErreur' => "Trop de tentatives de connexion!"), "index"); + exit(); + } + } + + + if ($this->utilisateur->connecter($login, $mdp)) + { + $_SESSION['nbTentativeConnexion'] = '0'; + + $this->logconnexion->succesconnexion($idConnexion); + + $utilisateur = $this->utilisateur->getUtilisateur($login); + + // + + // Début test Licence + $codeSociete = $utilisateur['codeSociete']; + $nomSociete = $utilisateur['nomSociete']; + $codeLangueUtilisateur = $utilisateur['codeLangue']; + + + if ($_SESSION['lang'] != $codeLangueUtilisateur) + { + $this->utilisateur->changerlangueutilisateurconnexion($login, $_SESSION['lang']); + } + + $licensed = getLicensed($codeSociete, $nomSociete); + + + if(!$licensed ) + { + if ($_SESSION['lang']=="en_US") + { + $this->genererVue(array('msgErreur' => 'PLEASE CONTACT EBENE SOLUTIONS INFORMATIQUES AT lkane@ebene.info!'), "index"); + } + else + { + $this->genererVue(array('msgErreur' => 'VEUILLEZ CONTACTER EBENE SOLUTIONS INFORMATIQUES AU lkane@ebene.info!'), "index"); + } + exit(); + } + // Fin test Licence + + + + if($utilisateur['actif']<>1) + { + if ($_SESSION['lang']=="en_US") + { + $this->genererVue(array('msgErreur' => 'User disabled!'), "index"); + } + else + { + $this->genererVue(array('msgErreur' => 'Utilisateur désactivé!'), "index"); + } + exit(); + } + + // Gestion limite usage + $dateLimiteUsage = $utilisateur['dateLimiteUsage']; + $dateLimiteUsage_0 = getMoritio_0(); + $dateLimiteUsage_2 = getMoritio_2(); + + + if($dateLimiteUsage<$dateLimiteUsage_0) + { + if ($_SESSION['lang']=="en_US") + { + $this->genererVue(array('msgErreur' => 'PLEASE CONTACT EBENE SOLUTIONS INFORMATIQUES AT lkane@ebene.info!'), "index"); + } + else + { + $this->genererVue(array('msgErreur' => 'VEUILLEZ CONTACTER EBENE SOLUTIONS INFORMATIQUES AU lkane@ebene.info!'), "index"); + } + exit(); + } + + + if($dateLimiteUsage_2<$dateLimiteUsage_0) + { + if ($_SESSION['lang']=="en_US") + { + $this->genererVue(array('msgErreur' => 'PLEASE CONTACT EBENE SOLUTIONS INFORMATIQUES AT lkane@ebene.info!'), "index"); + } + else + { + $this->genererVue(array('msgErreur' => 'VEUILLEZ CONTACTER EBENE SOLUTIONS INFORMATIQUES AU lkane@ebene.info!'), "index"); + } + exit(); + } + // FIN Gestion limite usage + + // DEBUT Gestion du client + + if($utilisateur['enVigueur']<>1) + { + if ($_SESSION['lang']=="en_US") + { + $this->genererVue(array('msgErreur' => 'Customer not in force!'), "index"); + } + else + { + $this->genererVue(array('msgErreur' => 'Client non en vigeur!'), "index"); + } + exit(); + } + + // Variables de session Utilisateur + $this->requete->getSession()->setAttribut("dateLimiteUsage", $dateLimiteUsage); + $this->requete->getSession()->setAttribut("idUtilisateur", $utilisateur['idUtilisateur']); + $this->requete->getSession()->setAttribut("idUtilisateur_C", $utilisateur['idUtilisateur']); + $this->requete->getSession()->setAttribut("login", $utilisateur['login']); + $this->requete->getSession()->setAttribut("login_C", $utilisateur['login']); + $this->requete->getSession()->setAttribut("codeSociete", $utilisateur['codeSociete']); + $this->requete->getSession()->setAttribut("codeSociete_C", $utilisateur['codeSociete']); + $this->requete->getSession()->setAttribut("codeUtilisateur", $utilisateur['codeUtilisateur']); + $this->requete->getSession()->setAttribut("codeUtilisateur_C", $utilisateur['codeUtilisateur']); + + $this->requete->getSession()->setAttribut("nomUtilisateur_C", $utilisateur['nomUtilisateur']); + $this->requete->getSession()->setAttribut("prenomsUtilisateur_C", $utilisateur['prenomsUtilisateur']); + $this->requete->getSession()->setAttribut("utilisateur_C", $utilisateur['utilisateur']); + + $this->requete->getSession()->setAttribut("userInitials_C", $utilisateur['initiales']); + + $this->requete->getSession()->setAttribut("telephoneUtilisateur_C", $utilisateur['telephoneUtilisateur']); + $this->requete->getSession()->setAttribut("emailUtilisateur_C", $utilisateur['emailUtilisateur']); + $this->requete->getSession()->setAttribut("codeProfil", $utilisateur['codeProfil']); + $this->requete->getSession()->setAttribut("codeProfil_C", $utilisateur['codeProfil']); + + + $this->requete->getSession()->setAttribut("profil_C", $utilisateur['profil']); + + + $this->requete->getSession()->setAttribut("nomSociete_C", $utilisateur['nomSociete']); + $this->requete->getSession()->setAttribut("nomSociete", $utilisateur['nomSociete']); + $this->requete->getSession()->setAttribut("numCompteSociete_C", $utilisateur['numCompteSociete']); + $this->requete->getSession()->setAttribut("adresseGeoSociete_C", $utilisateur['adresseGeoSociete']); + $this->requete->getSession()->setAttribut("adressePostSociete_C", $utilisateur['adressePostSociete']); + $this->requete->getSession()->setAttribut("villeSociete_C", $utilisateur['villeSociete']); + $this->requete->getSession()->setAttribut("telephoneSociete_C", $utilisateur['telephoneSociete']); + $this->requete->getSession()->setAttribut("emailSociete_C", $utilisateur['emailSociete']); + $this->requete->getSession()->setAttribut("portableSociete_C", $utilisateur['portableSociete']); + $this->requete->getSession()->setAttribut("nomResponsableSociete_C", $utilisateur['nomResponsableSociete']); + $this->requete->getSession()->setAttribut("codePaysSociete", $utilisateur['codePaysSociete']); + $this->requete->getSession()->setAttribut("medecinConseil_C", $utilisateur['medecinConseil']); + $this->requete->getSession()->setAttribut("telephoneMedecinConseil_C", $utilisateur['telephoneMedecinConseil']); + $this->requete->getSession()->setAttribut("sigleSociete_C", $utilisateur['sigleSociete']); + + $this->requete->getSession()->setAttribut("emailMedecinConseil_C", $utilisateur['emailMedecinConseil']); + $this->requete->getSession()->setAttribut("emailGestionBon_C", $utilisateur['emailGestionBon']); + $this->requete->getSession()->setAttribut("emailCcomptabilite_C", $utilisateur['emailCcomptabilite']); + $this->requete->getSession()->setAttribut("emailDerogation_C", $utilisateur['emailDerogation']); + $this->requete->getSession()->setAttribut("emailAccordPrealable_C", $utilisateur['emailAccordPrealable']); + + $this->requete->getSession()->setAttribut("smsMedecinConseil_C", $utilisateur['smsMedecinConseil']); + $this->requete->getSession()->setAttribut("smsGestionBon_C", $utilisateur['smsGestionBon']); + $this->requete->getSession()->setAttribut("smsDerogation_C", $utilisateur['smsDerogation']); + $this->requete->getSession()->setAttribut("smsAccordPrealable_C", $utilisateur['smsAccordPrealable']); + $this->requete->getSession()->setAttribut("sms_standard_C", $utilisateur['sms_standard']); + + $this->requete->getSession()->setAttribut("lienMail_C", $utilisateur['lienMail']); + $this->requete->getSession()->setAttribut("dossierPhoto_C", $utilisateur['dossierPhoto']); + + + $this->requete->getSession()->setAttribut("dUneSemaineAvant_C", $utilisateur['dUneSemaineAvant']); + $this->requete->getSession()->setAttribut("dUneSemaineAvantFr_C", $utilisateur['dUneSemaineAvantFr']); + + $this->requete->getSession()->setAttribut("codeExercice_C", $utilisateur['codeExercice']); + $this->requete->getSession()->setAttribut("codeMois_C", $utilisateur['codeMois']); + + $this->requete->getSession()->setAttribut("debutExercice_C", $utilisateur['debutExercice']); + $this->requete->getSession()->setAttribut("debutExerciceFr_C", $utilisateur['debutExerciceFr']); + + $this->requete->getSession()->setAttribut("debutMois_C", $utilisateur['debutMois']); + $this->requete->getSession()->setAttribut("debutMoisFr_C", $utilisateur['debutMoisFr']); + + $this->requete->getSession()->setAttribut("debutRequete_C", $_SESSION['debutMois_C']); + $this->requete->getSession()->setAttribut("debutRequeteFr_C", $_SESSION['debutMoisFr_C']); + $this->requete->getSession()->setAttribut("finRequeteFr_C", date('d/m/Y')); + + // On va déclarer les variable de session context + $this->requete->getSession()->setAttribut("idBeneficiaire_C", ""); + $this->requete->getSession()->setAttribut("idBeneficiaire_sav", ""); + + $this->requete->getSession()->setAttribut("user_id_C", "0"); + $this->requete->getSession()->setAttribut("finger_id_C", "0"); + + $this->requete->getSession()->setAttribut("idSubstitut_C", "0"); + $this->requete->getSession()->setAttribut("substitutnonassure_C", ""); + $this->requete->getSession()->setAttribut("substitutenVigueur_C", "0"); + + + $this->requete->getSession()->setAttribut("codeTypeClient_C", $utilisateur['codeTypeClient']); + $this->requete->getSession()->setAttribut("idClient_C", $utilisateur['idClient']); + $this->requete->getSession()->setAttribut("numeroClient_C", $utilisateur['numeroClient']); + $this->requete->getSession()->setAttribut("nomClient_C", $utilisateur['nomClient']); + $this->requete->getSession()->setAttribut("prenomClient_C", $utilisateur['prenomClient']); + + $this->requete->getSession()->setAttribut("adresseGeoClient_C", $utilisateur['adresseGeoClient']); + $this->requete->getSession()->setAttribut("boitepostaleClient_C", $utilisateur['boitepostaleClient']); + $this->requete->getSession()->setAttribut("telephoneBureauClient_C", $utilisateur['telephoneBureauClient']); + $this->requete->getSession()->setAttribut("telephonePortableClient_C", $utilisateur['telephonePortableClient']); + $this->requete->getSession()->setAttribut("faxClient_C", $utilisateur['faxClient']); + $this->requete->getSession()->setAttribut("emailClient_C", $utilisateur['emailClient']); + + $this->requete->getSession()->setAttribut("villeClient_C", $utilisateur['villeClient']); + $this->requete->getSession()->setAttribut("paysClient_C", $utilisateur['paysClient']); + + + $this->requete->getSession()->setAttribut("adherent_C", ""); + $this->requete->getSession()->setAttribut("numeroBeneficiaire_C", ""); + $this->requete->getSession()->setAttribut("nomBeneficiaire_C", ""); + $this->requete->getSession()->setAttribut("prenomsBeneficiaire_C", ""); + $this->requete->getSession()->setAttribut("beneficiaire_C", ""); + $this->requete->getSession()->setAttribut("codeLienParente_C", ""); + $this->requete->getSession()->setAttribut("numeroPiece_C", ""); + $this->requete->getSession()->setAttribut("sexe_C", ""); + $this->requete->getSession()->setAttribut("codeGroupeSanguin_C", ""); + $this->requete->getSession()->setAttribut("dateNaissance_C", ""); + $this->requete->getSession()->setAttribut("telephonePortableBeneficiaire_C", ""); + $this->requete->getSession()->setAttribut("dateEntreeBeneficiaire_C", ""); + $this->requete->getSession()->setAttribut("dateSortieBeneficiaire_C", ""); + $this->requete->getSession()->setAttribut("codeMotifSortie_C", ""); + $this->requete->getSession()->setAttribut("codeEtatBeneficiaire_C", ""); + $this->requete->getSession()->setAttribut("lienPhoto_C", ""); + $this->requete->getSession()->setAttribut("dateEffetBeneficiaire_C", ""); + + + $_SESSION['photoAssureCrypte'] = ""; + + $this->requete->getSession()->setAttribut("decede_C", ""); + $this->requete->getSession()->setAttribut("dateDeces_C", ""); + $this->requete->getSession()->setAttribut("fraisFuneraireDemande_C", ""); + + + $this->requete->getSession()->setAttribut("exercieReference_C", $utilisateur['codeExercice']); + + $this->requete->getSession()->setAttribut("naturepiece_C", ""); + $this->requete->getSession()->setAttribut("lienparente_C", ""); + $this->requete->getSession()->setAttribut("motifsortie_C", ""); + $this->requete->getSession()->setAttribut("etatbeneficiaire_C", ""); + $this->requete->getSession()->setAttribut("ageBeneficiaire_C", ""); + + $this->requete->getSession()->setAttribut("college_couvert_C", "0"); + $this->requete->getSession()->setAttribut("derogation_en_cours_C", "0"); + $this->requete->getSession()->setAttribut("tmDerogation_C", "0"); + $this->requete->getSession()->setAttribut("derogation_finger_en_cours_C", "0"); + $this->requete->getSession()->setAttribut("okId", "-1"); + + $this->requete->getSession()->setAttribut("accesAjoutPh_C", "0"); + + $this->requete->getSession()->setAttribut("tm_C", "0"); + $this->requete->getSession()->setAttribut("numeroFeuilleMaladie_C", "0"); + $this->requete->getSession()->setAttribut("numeroPrescription_C", "0"); + $this->requete->getSession()->setAttribut("numeroOptique_C", "0"); + $this->requete->getSession()->setAttribut("numeroExamen_C", "0"); + $this->requete->getSession()->setAttribut("numeroPrescriptionKine_C", "0"); + $this->requete->getSession()->setAttribut("idFacture_C", "0"); + + $this->requete->getSession()->setAttribut("numeroBonConsultation_C", "-1"); + $this->requete->getSession()->setAttribut("numeroBonHospitalisation_C", "-1"); + $this->requete->getSession()->setAttribut("hospitalisation_C", "0"); + $this->requete->getSession()->setAttribut("chirurgie_C", "0"); + $this->requete->getSession()->setAttribut("numeroBonOptique_C", "-1"); + $this->requete->getSession()->setAttribut("numeroBonOrdonnance_C", "-1"); + $this->requete->getSession()->setAttribut("numeroBonExamen_C", "-1"); + $this->requete->getSession()->setAttribut("numeroBonKine_C", "-1"); + $this->requete->getSession()->setAttribut("numeroBonSeance_C", "-1"); + + $this->requete->getSession()->setAttribut("codeFamilleActePharmacie_C", "000"); + $this->requete->getSession()->setAttribut("codeActePharmacie_C", "00000"); + + $this->requete->getSession()->setAttribut("codeFamilleActeOptique_C", "999"); + $this->requete->getSession()->setAttribut("codeActeOptique_C", "99999"); + $this->requete->getSession()->setAttribut("codeActeMonture_C", "99990"); + + // acte optique remboursement classique + $this->requete->getSession()->setAttribut("codeActeOptiqueCl_C", "RBCLOPT"); + $this->requete->getSession()->setAttribut("codeActeMontureCl_C", "RBCLMON"); + + $this->requete->getSession()->setAttribut("nbActesVerres", "0"); + $this->requete->getSession()->setAttribut("nbActesMonture", "0"); + + $this->requete->getSession()->setAttribut("nbTentative", "0"); + + $_SESSION['d1_C'] = $_SESSION['dUneSemaineAvant_C']; + $_SESSION['d2_C'] = date('Y-m-d'); + + $_SESSION['dateFactureReellefr_C'] = date("d/m/Y"); + $_SESSION['dateFactureReelle_C'] = date('Y-m-d'); + + $this->requete->getSession()->setAttribut("idReglement_C", "0"); + $this->requete->getSession()->setAttribut("numeroDecompte_C", "-1"); + $this->requete->getSession()->setAttribut("idDemandeDecompte_C", "0"); + $this->requete->getSession()->setAttribut("numeroDemandeDecompte_C", "-1"); + + $this->requete->getSession()->setAttribut("lienPrestation_C", $utilisateur['lienPrestation']); + $this->requete->getSession()->setAttribut("lienProduction_C", $utilisateur['lienProduction']); + $this->requete->getSession()->setAttribut("lienAssure_C", $utilisateur['lienAssure']); + $this->requete->getSession()->setAttribut("modeSaisieFacture", "0"); + + $this->requete->getSession()->setAttribut("nbMessagesNonLus_C", "0"); + + $this->requete->getSession()->setAttribut("requete", "0"); + $this->requete->getSession()->setAttribut("nbActesMonture", "0"); + + /* FIN variable de session context */ + + $filename = 'Societes/'.$utilisateur['codeSociete']; + + if (!file_exists($filename)) + { + mkdir($filename, 0700); + } + $this->requete->getSession()->setAttribut("dossierSociete", $filename); + + $this->requete->getSession()->setAttribut("dossierGed", $_SESSION['lienAssure_C'].$_SESSION['dossierSociete'].'/Ged/'); + $this->requete->getSession()->setAttribut("cheminGed", $_SESSION['dossierSociete'].'/Ged/'); + + $this->requete->getSession()->setAttribut("devise_C", $utilisateur['devise']); + $this->requete->getSession()->setAttribut("langSociete", $utilisateur['codeLangueSociete']); + + $codeLangue = $_SESSION['lang']; + + if ($_SESSION['lang']=="en_US") + { + $_SESSION['libelleLang']="English"; + } + else + { + $_SESSION['libelleLang']="Français"; + } + + $this->requete->getSession()->setAttribut("menu", $this->menu->getMenu($utilisateur['codeProfil'])); + + $codeProfil = $_SESSION['codeProfil_C']; + + $login = $_SESSION['login']; + + $_SESSION['codeUtilisateur'] = $login; + + // Avant de rediriger, on va remplir suivisaisies + $this->logconnexion->suivisaisies($login, $idSaisie, $codeLangue); + + setcookie('lang', $codeLangue, time()+365*24*3600, '/'); + setcookie('codeUtilisateur', $_SESSION['codeUtilisateur'], time()+365*24*3600, '/'); + setcookie('codeSociete', $_SESSION['codeSociete'], time()+365*24*3600, '/'); + + // ajout du 22/03/2025 => cookie user lié à codeSociete + $codeSociete = $_SESSION['codeSociete']; + setcookie("login[$codeSociete]", $_SESSION['codeUtilisateur'], time()+365*24*3600, '/'); + + $_SESSION['vue'] = "INTER-SANTE"; + + $this->requete->getSession()->setAttribut("changerMotPassDefaut", $utilisateur['changerMotPassDefaut']); + $this->requete->getSession()->setAttribut("verifierLongueurPass", $utilisateur['verifierLongueurPass']); + + $longueurPassWord = $utilisateur['longueurPassWord']; + $_SESSION['dureeSession'] = $utilisateur['dureeSession']; + + $changerMotPassDefaut = ( ($_SESSION['changerMotPassDefaut']=="1") && ($this->utilisateur->verifiermotpassdefaut($codeSociete, $mdp)) ); + $motCourt = ( ($_SESSION['verifierLongueurPass']=="1") && (strlen($mdp)<$longueurPassWord) ); + + // A enlever après + $_SESSION['motCourt'] = $motCourt; + $_SESSION['changerMotPassDefaut'] = $changerMotPassDefaut; + + $agePass = $utilisateur['agePass']; + $dureeViePassWord = $utilisateur['dureeViePassWord']; + + $passExpired = ( ($dureeViePassWord>"0") && ($agePass>$dureeViePassWord) ); + $_SESSION['passExpired'] = $passExpired; + + $_SESSION['passAchanger'] = false; + + $this->requete->getSession()->setAttribut("bdTests_C", "0"); + $this->requete->getSession()->setAttribut("colorTests", "red"); + + $this->requete->getSession()->setAttribut("faceRegistered_C", "0"); + + // face 26/09/2025 + $this->requete->getSession()->setAttribut("okId", "-1"); + $this->requete->getSession()->setAttribut("okId_face", "-1"); + $this->requete->getSession()->setAttribut("numeroBeneficiaire_face", ""); + + $this->requete->getSession()->setAttribut("largeurPhoto", $utilisateur['largeurPhoto']); + $this->requete->getSession()->setAttribut("longueurPhoto", $utilisateur['longueurPhoto']); + $this->requete->getSession()->setAttribut("assureAjoutPhoto", $utilisateur['assureAjoutPhoto']); + + $_SESSION['fingerActif'] = '0'; + $_SESSION['faceActif'] = '0'; + + $this->requete->getSession()->setAttribut("lienPhotoFace", $utilisateur['lienPhotoFace']); + $this->requete->getSession()->setAttribut("motPassPdf", $utilisateur['motPassPdf']); + + $logo = 'Societes/'.$_SESSION['codeSociete'].'/images/logo_etat.png'; + $this->requete->getSession()->setAttribut("lienLogo", $logo); + + $this->requete->getSession()->setAttribut("dossierAssure", $utilisateur['dossierAssure']); + $dossierLogo=$_SESSION['dossierAssure']."/images/logo_etat.png"; + $this->requete->getSession()->setAttribut("dossierLogo", $dossierLogo); + + $_SESSION['idLogapiface'] = "0"; + + // fin 26/09/2025 + + $_SESSION['deconnexion'] = "0"; + $_SESSION['derniere_action'] = time(); + + + + if(($motCourt===true) or ($changerMotPassDefaut===true) or ($passExpired===true)) + { + $_SESSION['passAchanger'] = true; + $_SESSION['menu'] = array(); + $this->rediriger("Changermotpass"); + } + else + { + $this->rediriger("Accueil"); + } + } + else + { + if (isset($_SESSION['nbTentativeConnexion'])) + { + $_SESSION['nbTentativeConnexion']++; + } + else + { + $_SESSION['nbTentativeConnexion'] = '1'; + } + + $nbTentativeConnexion = $_SESSION['nbTentativeConnexion']; + + if($nbTentativeConnexion>$nbTentativeConnexionMax) + { + $this->logconnexion->bannirconnexion($login, $ipConnexion, $nbTentativeConnexion); + + if ($_SESSION['lang']=="en_US") + { + $this->genererVue(array('msgErreur' => "Too many connection attempts!"), "index"); + } + else + { + $this->genererVue(array('msgErreur' => "Trop de tentatives de connexion!"), "index"); + } + } + else + { + if ($_SESSION['lang']=="en_US") + { + $this->genererVue(array('msgErreur' => "Incorrect login or password => $nbTentativeConnexion attempts (s)"), "index"); + } + else + { + $this->genererVue(array('msgErreur' => "Login ou mot de passe incorrects => $nbTentativeConnexion tentative (s)"), "index"); + } + } + } + } + else + { + if ($_SESSION['lang']=="en_US") + { + throw new Exception("Login or password not defined!"); + } + else + { + throw new Exception("Login ou mot de passe non défini!"); + } + } + } + + public function deconnecter() + { + if($this->requete->getSession()->existeAttribut("login")) + { + $login = $this->requete->getSession()->getAttribut("login"); + $this->utilisateur->viderTablesTemporairesUser($login); + } + + $langue = $_SESSION['lang']; + $this->requete->getSession()->detruire(); + $_SESSION['lang'] = $langue; + + $this->rediriger("Connexion"); + } + + public function quitter() + { + $login = $this->requete->getSession()->getAttribut("login"); + $this->utilisateur->viderTablesTemporairesUser($login); + $this->societeusercentral->viderTablesTemporairesUser($login); + $this->requete->getSession()->detruire(); + } +}