/** * @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 identifier($pParam) { // En cas de nouvelle connexion sans déconnexion on supprime les droits session_unset(); $lValid = new IdentificationValid(); $lVr = $lValid->validAjout($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"]); // 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 ($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 = new AccesVO(); $lAcces->setIdLogin($lIdentification->getIdLogin()); $lAcces->setTypeLogin($lIdentification->getType()); $lAcces->setIp($_SERVER["REMOTE_ADDR"]); $lAcces->setNav($_SERVER['HTTP_USER_AGENT']); $lAcces->setDateCreation(StringUtils::dateTimeAujourdhuiDb()); $lAcces->setAutorise(1); $_SESSION[ID_CONNEXION] = AccesManager::insert($lAcces); } } } if ($lAutorisation) { $lResponse = new IdentificationResponse(); $lResponse->setType($_SESSION[TYPE_ID]); $lResponse->setModules($lModules); $lResponse->setIdConnexion($_SESSION[ID_CONNEXION]); 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 remplirAcces($pId, $pIdLogin, $pTypeLogin, $pIp, $pNav, $pDateCreation, $pDateModification, $pAutorise) * @param int(11) * @param int(11) * @param int(11) * @param varchar(40) * @param varchar(100) * @param datetime * @param timestamp * @param int(11) * @return AccesVO * @desc Retourne une AccesVO remplie */ private static function remplirAcces($pId, $pIdLogin, $pTypeLogin, $pIp, $pNav, $pDateCreation, $pDateModification, $pAutorise) { $lAcces = new AccesVO(); $lAcces->setId($pId); $lAcces->setIdLogin($pIdLogin); $lAcces->setTypeLogin($pTypeLogin); $lAcces->setIp($pIp); $lAcces->setNav($pNav); $lAcces->setDateCreation($pDateCreation); $lAcces->setDateModification($pDateModification); $lAcces->setAutorise($pAutorise); return $lAcces; }