/** * @name deconnecter() * @desc Déconnecter l'utilisateur */ public function deconnecter() { $lAcces = AccesManager::select($_SESSION[ID_CONNEXION]); $lAcces->setAutorise(0); AccesManager::update($lAcces); // Ferme l'accès pour cette connexion session_unset(); // Supprime les variables de session session_destroy(); header('location:./index.php'); }
/** * @name identifier($pParam) * @return VR * @desc Vérifie le login et mot de passe dans la BDD et renvoie un IdentificationPO avec l'authorisation et place les autorisations dans les variables de session */ public function reconnecter($pParam) { // En cas de nouvelle connexion sans déconnexion on supprime les droits session_unset(); $lValid = new IdentificationValid(); $lVr = $lValid->validReconnection($pParam); if ($lVr->getValid()) { $lLogin = $pParam["login"]; // Version cryptée du mot de pass pour le comparer avec celui de la BDD $lPass = md5($pParam["pass"]); // Recherche de l'accès précédent $lAcces = AccesManager::select($pParam["idConnexion"]); // Sélection des adhérents ayant le login de l'identification $lListeIdentification = IdentificationManager::selectByLogin($lLogin); // Recherche de correspondance de login et mot de passe dans la base $lAutorisation = false; $lModules = array(); if (is_array($lListeIdentification)) { foreach ($lListeIdentification as $lIdentification) { if ($lAcces->getIdLogin() == $lIdentification->getIdLogin() && $lAcces->getIp() == $_SERVER["REMOTE_ADDR"] && $lAcces->getTypeLogin() == $lIdentification->getType() && $lIdentification->getLogin() === $lLogin && $lIdentification->getPass() === $lPass && $lIdentification->getAutorise() == 1) { switch ($lIdentification->getType()) { case 1: // Adhérent $lModules = $this->identifierAdherent($lIdentification); break; case 2: // SuperZeybu $lModules = $this->identifierSuperZeybu($lIdentification); break; case 3: // Caisse $lModules = $this->identifierCaisse($lIdentification); break; case 4: // Compte Solidaire $lModules = $this->identifierCompteSolidaire($lIdentification); break; } $_SESSION[TYPE_ID] = $lIdentification->getType(); $lAutorisation = true; $lAcces->setAutorise(1); AccesManager::update($lAcces); $_SESSION[ID_CONNEXION] = $lAcces->getId(); } } } if ($lAutorisation) { $lResponse = new IdentificationResponse(); return $lResponse; } else { $lVr = new TemplateVR(); $lVr->setValid(false); $lVr->getLog()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_222_CODE); $lErreur->setMessage(MessagesErreurs::ERR_222_MSG); $lVr->getLog()->addErreur($lErreur); } } return $lVr; }
/** * @name recherche( $pTypeRecherche, $pTypeCritere, $pCritereRecherche, $pTypeTri, $pCritereTri ) * @param string nom de la table * @param string Le type de critère de recherche * @param array(string) champs à récupérer dans la table * @param array(array(string, object)) Dictionnaire(champ, valeur)) contenant les champs à filtrer ainsi que la valeur du filtre * @param array(array(string, string)) Dictionnaire(champ, sens) contenant les tris à appliquer * @return array(AccesVO) * @desc Récupères les lignes de la table selon le critère de recherche puis trie et renvoie la liste de résultat sous forme d'une collection de AccesVO */ public static function recherche($pTypeRecherche, $pTypeCritere, $pCritereRecherche, $pTypeTri, $pCritereTri) { // Initialisation du Logger $lLogger =& Log::singleton('file', CHEMIN_FICHIER_LOGS); $lLogger->setMask(Log::MAX(LOG_LEVEL)); // Préparation de la requète $lChamps = array(AccesManager::CHAMP_ACCES_ID . "," . AccesManager::CHAMP_ACCES_ID_LOGIN . "," . AccesManager::CHAMP_ACCES_TYPE_LOGIN . "," . AccesManager::CHAMP_ACCES_IP . "," . AccesManager::CHAMP_ACCES_NAV . "," . AccesManager::CHAMP_ACCES_DATE_CREATION . "," . AccesManager::CHAMP_ACCES_DATE_MODIFICATION . "," . AccesManager::CHAMP_ACCES_AUTORISE); // Préparation de la requète de recherche $lRequete = DbUtils::prepareRequeteRecherche(AccesManager::TABLE_ACCES, $lChamps, $pTypeRecherche, $pTypeCritere, $pCritereRecherche, $pTypeTri, $pCritereTri); $lListeAcces = array(); if ($lRequete !== false) { $lLogger->log("Execution de la requete : " . $lRequete, PEAR_LOG_DEBUG); // Maj des logs $lSql = Dbutils::executerRequete($lRequete); if (mysql_num_rows($lSql) > 0) { while ($lLigne = mysql_fetch_assoc($lSql)) { array_push($lListeAcces, AccesManager::remplirAcces($lLigne[AccesManager::CHAMP_ACCES_ID], $lLigne[AccesManager::CHAMP_ACCES_ID_LOGIN], $lLigne[AccesManager::CHAMP_ACCES_TYPE_LOGIN], $lLigne[AccesManager::CHAMP_ACCES_IP], $lLigne[AccesManager::CHAMP_ACCES_NAV], $lLigne[AccesManager::CHAMP_ACCES_DATE_CREATION], $lLigne[AccesManager::CHAMP_ACCES_DATE_MODIFICATION], $lLigne[AccesManager::CHAMP_ACCES_AUTORISE])); } } else { $lListeAcces[0] = new AccesVO(); } return $lListeAcces; } $lListeAcces[0] = new AccesVO(); return $lListeAcces; }