webservice->scores; $wsdl = !empty($webservicesConfig->wsdl) ? $webservicesConfig->wsdl : null ; $options = array(); foreach ($webservicesConfig->options as $optionName => $optionValue){ $options[$optionName] = $optionValue; } $options['login'] = $_SERVER['PHP_AUTH_USER']; $options['password'] = $_SERVER['PHP_AUTH_PW']; $this->wsdl = $wsdl; $this->wsdlOptions = $options; $this->iInsee = new MInsee(); $this->iDbCrm = new WDB('sdv1'); } /** * Retourne les informations identitaires de l'entreprise ou de l'établissement demandé * @param string $siret Siren de l'entreprise ou siret de l'établissement * @param int $id Identifiant interne * @param boolean $forceVerif * @return IdentiteReturn */ public function getIdentite($siret, $id = 0, $forceVerif = false) { if (!$this->checkAuth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'], $_SERVER['REMOTE_ADDR'])) { throw new SoapFault('900','Identifiant ou mot de passe incorrect !'); exit; } $outputParams = new IdentiteReturn(); $error = new ErrorType(); $result = new IdentiteResult(); $tdeb = microtime(1); $ligne = date('YmdHis').";$siret;Ws->getIdentite Avant ..."; $fp = fopen(LOG_PATH.'/accesDistant.log', 'a'); fwrite($fp,$ligne.EOL); fclose($fp); debugLog('I',"Identités demandée pour siret $siret (id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); $tabRet = array(); $siret = trim($siret); $len = strlen($siret); $id = trim($id)*1; if ($len==14) $nic=substr(''.$siret,9,5)*1; elseif ($len== 9) $nic=0; elseif ($len== 0) { $siren=0; $nic=0; } else { debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); $error->errnum = 102; $error->errmsg = 'Siren Siret inexistant'; $outputParams->error = $error; $outputParams->result = $result; return $outputParams; exit; } $siren = substr(''.$siret,0,9)*1; if ($siren==0 && $id==0) { debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); $error->errnum = 102; $error->errmsg = 'Siren inexistant'; $outputParams->error = $error; $outputParams->result = $result; return $outputParams; exit; } debugLog('I', "Avant getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); $entrep = $this->iInsee->getIdentiteEntreprise($siren, $nic, $id, $forceVerif); debugLog('I', "Après getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); $duree = round(microtime(1)-$tdeb,3); $ligne = date('YmdHis').";$siret;Ws->getIdentite juste apres iInsee->... ($duree s)"; $fp = fopen(LOG_PATH.'/accesDistant.log', 'a'); fwrite($fp,$ligne.EOL); fclose($fp); if (empty($entrep)) { debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__); $error->errnum = 102; $error->errmsg = 'Siren inexistant'; $outputParams->error = $error; $outputParams->result = $result; return $outputParams; exit; } $iBourse = new MBourse($siren); $bourse = $iBourse->getInfosBourse($siren); $tabRet = array( 'id' =>$entrep['id'], 'Siret' =>$entrep['Siret'], 'SiretSiege' =>$entrep['SiretSiege'], 'Siege' =>$entrep['Siege'], 'TribunalCode' =>$entrep['Tribunal'], 'TribunalLib' =>$entrep['TribunalLib'], //'NumGreffe' =>$entrep['numGreffe'], // Ajouté le 4 08 2009 'NumRC' =>$entrep['numRC'], // Ajouté le 4 08 2009 'Actif' =>$entrep['Actif'], 'EntActiveRCS' =>$entrep['EntActiveRCS'], 'AutreId' =>$entrep['AutreId'], 'Source' =>$entrep['Source'], 'SourceId' =>$entrep['SourceId'], 'Isin' =>$entrep['Isin'], 'Nom' =>strtr($entrep['Nom'],'/*',' '), 'Nom2' =>$entrep['Nom2'], 'NomLong' =>$entrep['nomLong'], // Ajouté le 4 08 2009 'Siret' =>$entrep['Siret'], 'Sigle' =>$entrep['Sigle'], 'SigleLong' =>$entrep['sigleLong'], // Ajouté le 4 08 2009 'Enseigne' =>$entrep['Enseigne'], 'Adresse' =>$entrep['Adresse'], 'Adresse2' =>$entrep['Adresse2'], 'AdresseNum' =>$entrep['AdresseNum'], 'AdresseBtq' =>$entrep['AdresseBtq'], 'AdresseVoie' =>$entrep['AdresseVoie'], 'AdresseRue' =>$entrep['AdresseRue'], 'CP' =>$entrep['CP'], 'Ville' =>$entrep['Ville'], 'Pays' =>$entrep['Pays'], // Ajouté le 18 02 2008 'PaysIso2' =>$entrep['PaysIso2'], 'AdresseDom' =>$entrep['AdresseDom'], 'AdresseDomEnt' =>$entrep['AdresseDomEnt'], 'AdresseDomNb' =>$entrep['AdresseDomNb'], 'Civilite' =>$entrep['Civilite'], 'NbEtab' =>$entrep['NbEtab'], 'Tel' =>$entrep['Tel'], 'Fax' =>$entrep['Fax'], 'Web' =>$entrep['Web'], 'Mail' =>$entrep['Mail'], 'GeoLat' =>$entrep['GeoLat'], 'GeoLon' =>$entrep['GeoLon'], 'GeoPrecis' =>$entrep['GeoPrecis'], 'GeoInfos' =>$entrep['GeoInfos'], 'TvaNumero' =>$entrep['TvaNumero'], 'TvaAttribue' =>$entrep['TvaAttribue'], 'FJ' =>$entrep['FJ'], 'FJ_lib' =>$entrep['FJ_lib'], 'FJ2' =>$entrep['FJ2'], // Ajouté le 4 08 2009 'FJ2_Lib' =>$entrep['FJ2_Lib'], // Ajouté le 4 08 2009 'Siren' =>$entrep['Siren'], 'Nic' =>$entrep['Nic'], 'NafEnt' =>$entrep['NafEnt'], 'NafEntLib' =>$entrep['NafEntLib'], 'NafEtab' =>$entrep['NafEtab'], 'NafEtabLib' =>$entrep['NafEtabLib'], 'NaceEtab' =>$entrep['NaceEtab'], 'NaceEnt' =>$entrep['NaceEnt'], 'Nafa' =>$entrep['APRM'], 'NafaLib' =>$entrep['APRM_Lib'], 'NumRM' =>$entrep['NumRM'], 'Activite' =>$entrep['Activite'], 'Capital' =>$entrep['Capital'], 'CapitalDev' =>$entrep['CapitalDev'], 'CapitalLib' =>$entrep['CapitalLib'], // Ajouté le 18 02 2008 'CapitalType' =>$entrep['CapitalType'],// Ajouté le 4 08 2009 'DateCreaEt' =>$entrep['DateCreaEt'], 'DateCreaEn' =>$entrep['DateCreaEn'], 'DateClotEt' =>$entrep['DateClotEt'], 'DateImmat' =>$entrep['dateImmat'], // Ajouté le 4 08 2009 'DateRadiation' =>$entrep['dateRad'], // Ajouté le 4 08 2009 // 'DateMajRCS' =>$entrep['DateMajRCS'], // Ajouté le 4 08 2009 'EffEnTr' =>$entrep['EffEnTr'], 'EffEnTrLib' =>$entrep['EffEnTrLib'], 'Effectif' =>$entrep['Effectif'], 'EffEtTr' =>$entrep['EffEtTr'], // Ajout le 11 08 2010 'EffEtTrLib' =>$entrep['EffEtTrLib'], // Ajout le 11 08 2010 'EffectifEtab' =>$entrep['EffectifEtab'],// Ajout le 11 08 2010 'Dept' =>$entrep['Dept'], 'codeCommune' =>$entrep['codeCommune'], 'AnneeEffEn' =>$entrep['AnneeEffEn'], 'AnneeEffEt' =>$entrep['AnneeEffEt'], 'AnneeTCA' =>$entrep['AnneeTCA'], 'TrancheCA' =>$entrep['TrancheCA'], 'TrancheCALib' =>$entrep['TrancheCALib'], 'dir1Code' =>$entrep['dir1Code'], 'dir1Titre' =>$entrep['dir1Titre'],//utf8 'dir1NomPrenom' =>$entrep['dir1NomPrenom'], 'dir1DateFct' =>$entrep['dir1DateFct'], 'dir1DateNaiss' =>$entrep['dir1DateNaiss'],// Ajouté le 4 08 2009 'dir1LieuNaiss' =>$entrep['dir1LieuNaiss'],// Ajouté le 4 08 2009 'dir2Code' =>$entrep['dir2Code'], 'dir2Titre' =>$entrep['dir2Titre'],//utf8 'dir2NomPrenom' =>$entrep['dir2NomPrenom'], 'dir2DateFct' =>$entrep['dir2DateFct'], 'dir2DateNaiss' =>$entrep['dir2DateNaiss'],// Ajouté le 4 08 2009 'dir2LieuNaiss' =>$entrep['dir2LieuNaiss'],// Ajouté le 4 08 2009 'Rivoli' =>$entrep['Rivoli'], 'NatureActivite' =>$entrep['NatureActivite'], // Nature de l'activité 'OrigineCreation' =>$entrep['OrigineCreation'], // Origine de la création 'TypeExploitation' =>$entrep['TypeExploitation'], 'Auxiliaire' =>$entrep['Auxiliaire'], // 1=Auxiliaire / 0=Non auxiliaire 'Saisonnalite' =>$entrep['Saisonnalite'], // P=Activité permanente / S=Activité saisonnière 'SituationJuridique'=>$entrep['SituationJuridique'], 'Bilan' =>array('Cloture' => $entrep['bilanDate'], 'Duree' => $entrep['bilanMois'], 'Devise' => $entrep['bilanDevise'], 'Capital' => $entrep['bilanDA'], 'CA' => $entrep['bilanFL'], 'Resultat' => $entrep['bilanHN'], 'Effectif' => $entrep['bilanYP'], ), 'Bourse' =>array('placeCotation'=>$bourse['placeCotation'], 'nombreTitres'=>$bourse['nombreTitres'], 'capitalisation'=>$bourse['close']*$bourse['nombreTitres'], 'derCoursDate'=>$bourse['date'], 'derCoursCloture'=>$bourse['close']), 'AutreSiren' =>$entrep['AutreSiren'], 'DateMajINSEE' =>$entrep['DateMajINSEE'], 'DateMajRCS' =>$entrep['DateMajRCS'], 'DateMajBILAN' =>$entrep['bilanDateMaj'], 'DateMajANN' =>$entrep['dateMajANN'], 'DateMajID' =>$entrep['dateMajIdentite'], //'importExport' =>$entrep['importExport'], ); if (preg_match('/NAF4/i', $this->tabInfoUser['pref'])) { $entrep2=$this->iInsee->getNaf4($siren, $nic, $id); $tabRet['Naf4Ent'] = $entrep2['apen4']; $tabRet['Naf4Etab'] = $entrep2['apet4']; $tabRet['Naf4EntLib'] = prepareString($entrep2['apen4_lib']); $tabRet['Naf4EtabLib'] = prepareString($entrep2['apet4_lib']); } /*$tabRet=$entrep; $tabRet['Bourse']=array('placeCotation'=>$bourse['placeCotation'], 'nombreTitres'=>$bourse['nombreTitres'], 'capitalisation'=>$bourse['close']*$bourse['nombreTitres'], 'derCoursDate'=>$bourse['date'], 'derCoursCloture'=>$bourse['close']);*/ //$tabRet=$entrep; debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); wsLog('identite',$siret,$id); $duree=round(microtime(1)-$tdeb,3); $ligne=date('YmdHis').";$siret;Ws->getIdentite APRES ($duree s) !!!"; $fp=fopen(LOG_PATH.'/accesDistant.log', 'a'); fwrite($fp,$ligne.EOL); fclose($fp); $result = arrayToClass($tabRet, 'IdentiteResult'); $error->errnum = 0; $error->errmsg = ''; $outputParams->error = $error; $outputParams->result = $result; return $outputParams; } /** * Liste des établissements d'une entreprise * @param string $siren Siren de l'entreprise * @param integer $departement Limiter aux établissements du departement * @param integer $actif Otpionnel 1=Uniquements les actifs, 0=inactifs, Néant=Tous * @param integer $position * @param integer $nbRep * * @return ListeEtablissementsReturn */ public function getListeEtablissements( $siren, $dep = 0, $actif = -1, $position = 0, $nbRep = 20) { if (!$this->checkAuth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'], $_SERVER['REMOTE_ADDR'])) { throw new SoapFault('900','Identifiant ou mot de passe incorrect !'); exit; } //Initialisation if (!isset($dep)) { $dep = 0; } if (!isset($actif)) { $actif = -1; } if (!isset($position)) { $position = 0; } if (!isset($nbRep)) { $nbRep = 20; } //Valeur max if($nbRep > 200) { $nbRep = 200; } $departement = $dep; $error = new ErrorType(); debugLog('I',"Liste des établissements demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); if (strlen($siren)<>9) { debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); $error->errnum = 102; $error->errmsg = 'Siren inexistant'; } elseif ($siren*1==0) { debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); $error->errnum = 102; $error->errmsg = 'Siren inexistant'; } else { $rep = $this->iInsee->getEtablissements($siren, '', $position, $nbRep, 200, $departement, $actif); $etabs = $rep['reponses']; $nbReponses = $rep['nbReponsesTotal']; $result = array(); if (count($etabs)>0) { foreach ($etabs as $nb => $etab) { $etablissement = new Etablissement(); $etablissement->id = $etab['id']; $etablissement->Siege = $etab['Siege']; $etablissement->Enseigne = $etab['Enseigne']; $etablissement->Adresse = $etab['Adresse']; $etablissement->Adresse2 = $etab['Adresse2']; $etablissement->CP = $etab['CP']; $etablissement->Ville = $etab['Ville']; $etablissement->Tel = $etab['Tel']; $etablissement->Fax = $etab['Fax']; $etablissement->Nic = $etab['Nic']; $etablissement->Actif = $etab['Actif']; $etablissement->NafEtab = $etab['NafEtab']; $etablissement->NafEtabLib = $etab['NafEtabLib']; $etablissement->EffEtTr = $etab['EffEtTr']; $etablissement->EffEtTrLib = $etab['EffEtTrLib']; $result[] = $etablissement; } } debugLog('I', "Nb Etablissements retournés ($departement, $actif) = ". count($result), __LINE__, __FILE__, __FUNCTION__, __CLASS__); wsLog('etablissements',$siren); } $reponse = new ListeEtablissementsResult(); $reponse->nbReponses = $nbReponses; $reponse->liste = $result; $output = new ListeEtablissementsReturn(); $output->error = $error; $output->result = $reponse; return $output; } /** * Retourne l'ensemble des informations identitaires des dirigeants de l'entreprise * * @param integer $siren Siren de l'entreprise * @param bool $histo Afficher l'historique des dirigeants * @return DirigeantsReturn Liste des dirigeants actifs de l'entreprise */ public function getDirigeants( $siren , $histo = false) { if (!$this->checkAuth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'], $_SERVER['REMOTE_ADDR'])) { throw new SoapFault('900','Identifiant ou mot de passe incorrect !'); exit; } debugLog('I',"Dirigeants demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); $tabRet = array(); if (strlen($siren)<>9) { debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); $error->errnum = 102; $error->errmsg = 'Siren Siret inexistant'; } elseif ($siren*1==0) { debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); $error->errnum = 102; $error->errmsg = 'Siren inexistant'; } else { if ($histo) $option='histo'; else $option=''; $dirs = $this->iInsee->getDirigeants($siren, $histo); //debugLog('W', print_r($entrep, true), __LINE__, __FILE__, __FUNCTION__, __CLASS__); $liste = array(); foreach ($dirs as $nb => $dir) { //debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); $dirigeant = new Dirigeant(); $dirigeant->Code = $dir['Fonction']; $dirigeant->Titre = $dir['Titre']; $dirigeant->Societe = $dir['Societe']; $dirigeant->Civilite = $dir['Civilite']; $dirigeant->Nom = $dir['Nom']; $dirigeant->Prenom = $dir['Prenom']; $dirigeant->NaissDate = $dir['NaissDate']; $dirigeant->NaissVille = $dir['NaissVille']; $dirigeant->NaissDepPays = $dir['NaissDepPays']; $dirigeant->Ancien = $dir['Ancien']; $dirigeant->DateFct = $dir['DateFct']; $liste[] = $dirigeant; } wsLog('dirigeants',$siren,$option); debugLog('I', 'Nb Dirigeants retournés = '. count($dirs), __LINE__, __FILE__, __FUNCTION__, __CLASS__); } $output = new DirigeantsReturn(); $output->error = $error; $output->result = $liste; return $output; } /** * Recherche * @param string $type Type de la recherche (recherche entreprise : 'ent', recherche dirigeant : 'dir') * @param RechercheEntrepriseCriteres $criteres * @param int $position Position de parcours des résultats retournées (0 par défaut) * @param int $nbRep Nombre de réponses retournées lors d'une requête (20 par défaut) * @param int $maxRep Nombre de réponses maximum pouvant être retournées lors d'une requête (200 par défaut) * @param bool $pertinence Recherche orthographique stricte sur le nom, l'adresse et la ville (false par défaut) * @param bool $avecSiren Seulement les entités sirénées (false par défaut) * @return RechercheEntrepriseReturn */ public function rechercheEntreprise($type, $criteres, $position = 0, $nbRep = 20, $maxRep = 200, $pertinence = false, $avecSiren = false) { //Enregistrement des accès à la requête getIdentite Zend_Registry::get('WsLogger')->info("rechercheEntreprise - ip:". $_SERVER['REMOTE_ADDR'].", login:".$_SERVER['PHP_AUTH_USER']); switch ($type) { case 'ent': $entCriteres = new CriteresEntreprise(); $entCriteres = $criteres->elementEntreprise; $client = new SoapClient($this->wsdl, $this->wsdlOptions); $identifiant = $entCriteres->identifiant; $typeId = ''; if ($identifiant!='') { $len = strlen($identifiant); //Numéro WALDEC if (strtoupper(substr($identifiant,0,1))=='W') { $typeId = 'W'; //Code ISIN } elseif ($len==12){ $typeId = 'I'; //TVA Intracommunautaire } elseif (in_array(substr($identifiant,0,2), array('AT','BE','BG','CY','CZ','DE','DK','EE','EL','ES', 'FI','GB','HU','IE','IT','LT','LU','LV','MT','NL','PL', 'PT','RO','SE','SI','SK'))){ //"La recherche par numéro de TVA n'est pas encore possible sur ce pays !"; //Pour la france } elseif (substr($identifiant,0,2)=='FR') { $typeId = 'S'; if ($len==13) $identifiant = substr($identifiant,4,9); else $identifiant = ''; //Numéro RC } elseif (preg_match('/A|B|C|D/i', $identifiant)) { $typeId='R'; //Siren normal on enleve tout ce qui n'est pas un chiffre } else { $typeId = 'S'; } } if (in_array($typeId, array('R', 'W', 'I'))){ try { $O = $client->searchAutreId( $typeId, $identifiant, empty($position) ? 0 : $position, empty($nbRep) ? 20 : $nbRep, empty($maxRep) ? 200 : $maxRep, $entCriteres->codePostal ); } catch (SoapFault $fault) { Zend_Registry::get('WsLogger')->err("rechercheEntreprise - ".serialize($criteres)); throw new SoapFault($fault->faultcode, $fault->faultstring); exit; } } elseif ($typeId == 'S'){ try { $O = $client->searchSiren( $identifiant, empty($position) ? 0 : $position, empty($nbRep) ? 20 : $nbRep, empty($maxRep) ? 200 : $maxRep, $entCriteres->codePostal ); } catch (SoapFault $fault) { Zend_Registry::get('WsLogger')->err("rechercheEntreprise - ".serialize($criteres)); throw new SoapFault($fault->faultcode, $fault->faultstring); exit; } } else { try { $O = $client->searchNomAdr( $entCriteres->raisonSociale, $entCriteres->adresse, $entCriteres->codePostal, $entCriteres->ville, empty($entCriteres->siege) ? false : $entCriteres->siege, empty($entCriteres->actif) ? false : $entCriteres->actif, empty($position) ? 0 : $position, empty($nbRep) ? 20 : $nbRep, empty($maxRep) ? 200 : $maxRep, empty($pertinence) ? false : $pertinence, empty($avecSiren) ? false : $avecSiren, $entCriteres->naf ); } catch (SoapFault $fault) { Zend_Registry::get('WsLogger')->err("rechercheEntreprise - ".serialize($criteres)); throw new SoapFault($fault->faultcode, $fault->faultstring); exit; } } break; case 'dir': $dirCriteres = new CriteresDirigeant(); $dirCriteres = $criteres->elementDirigeant; $client = new SoapClient($this->wsdl, $this->wsdlOptions); try { $O = $client->searchDir( $dirCriteres->dirNom, $dirCriteres->dirPrenom, $dirCriteres->dirDateNaiss, $dirCriteres->dirVille, empty($position) ? 0 : $position, empty($nbRep) ? 20 : $nbRep, empty($maxRep) ? 200 : $maxRep, empty($pertinence) ? false : $pertinence ); } catch (SoapFault $fault) { Zend_Registry::get('WsLogger')->err("rechercheEntreprise - ".serialize($criteres)); throw new SoapFault($fault->faultcode, $fault->faultstring); exit; } break; } $error = new ErrorType(); $error = arrayToClass($O['error'], 'ErrorType'); $results = new RechercheEntrepriseResult(); $results = arrayToClass($O['results'], 'RechercheEntrepriseResult'); $outputParams = new RechercheEntrepriseReturn(); $outputParams->error = $error; $outputParams->results = $results; return $outputParams; } /** * Retourne le statut du webservice * @return StatusReturn */ public function status() { /* @todo tester les différents éléments qui peuvent conduire * à un problème dans les services tel que la connexion à la * base de données, l'accès FTP, l'accès HTTP, l'accès système de fichier */ //Enregistrement des accès à la requête getIdentite Zend_Registry::get('WsLogger')->info("status - ip:". $_SERVER['REMOTE_ADDR'].", login:".$_SERVER['PHP_AUTH_USER']. ", hash:".$_SERVER['PHP_AUTH_PW']); $error = new StatusReturn(); //Test connexion à la base de données $db = new WDB('jo'); if ($db === false) { $error->statusCode = 1; $error->statusMsg = 'Erreur critique'; } else { $error->statusCode = 0; $error->statusMsg = 'Services disponible (beta)'; } return $error; } protected function checkAuth($login, $password, $ipConnexion) { $rep = $this->iDbCrm->select(//'utilisateurs', 'login, id, email, password, idClient, typeCompte, filtre_ip, civilite, nom, prenom, tel, fax, mobile, profil, raisonSociale, siret, adrNum, adrIndRep, adrTypeVoie, adrLibVoie, adrCp, adrVille, adrComp, tel, fax, mobile, pref, profil, dateInscription, dateValidation, nombreConnexions, dateDerniereConnexion, droits, referenceParDefaut, nbReponses, formatMail, dateDebutCompte, dateFinCompte, maxFicheId', "login='$login' AND actif=1", true, MYSQL_ASSOC); 'utilisateurs u, clients c', 'u.login, u.id, u.email, u.password, u.idClient, u.typeCompte, u.actif, u.filtre_ip, u.civilite, u.nom, u.prenom, u.tel, u.fax, u.mobile, u.profil, u.raisonSociale, u.siret, u.adrNum, u.adrIndRep, u.adrTypeVoie, u.adrLibVoie, u.adrCp, u.adrVille, u.adrComp, u.tel, u.fax, u.mobile, u.pref, u.profil, u.dateInscription, u.dateValidation, u.nombreConnexions, u.dateDerniereConnexion, u.droits, u.referenceParDefaut, u.nbReponses, u.formatMail, u.dateDebutCompte, u.dateFinCompte, u.maxFicheId, c.droits AS droitsClients, c.timeout', "u.login='$login' AND u.idClient=c.id AND u.actif=1 AND u.deleted=0 AND c.actif='Oui'", true, MYSQL_ASSOC); $tabRep = $rep[0]; if (count($rep)>0) { if ($tabRep['password']==$password || $tabRep['password']==md5($password) || $password==md5($login.'|'.$tabRep['password']) || (substr($password,0,7)=='iponly:' && checkPlagesIp($tabRep['filtre_ip'], substr($password,7)))) // Controle par IP { $timeOutSec=$tabRep['timeout']*60; if ($timeOutSec==0) $timeOutSec=1800; $this->tabInfoUser=array( 'login'=> $login, 'id'=> $tabRep['id'], 'email'=> $tabRep['email'], 'typeCompte'=> $tabRep['typeCompte'], 'idClient'=> $tabRep['idClient'], 'filtre_ip'=> $tabRep['filtre_ip'], 'ipPasserelle'=> '', 'ipConnexion'=> $ipConnexion, 'civilite'=> $tabRep['civilite'], 'nom'=> $tabRep['nom'], 'prenom'=> $tabRep['prenom'], 'raisonSociale'=> $tabRep['raisonSociale'], 'siret'=> $tabRep['siret'], 'adrNum'=> $tabRep['adrNum'], 'adrIndRep'=> $tabRep['adrIndRep'], 'adrTypeVoie'=> $tabRep['adrTypeVoie'], 'adrLibVoie'=> $tabRep['adrLibVoie'], 'adrCp'=> $tabRep['adrCp'], 'adrVille'=> $tabRep['adrVille'], 'adrComp'=> $tabRep['adrComp'], 'tel'=> $tabRep['tel'], 'fax'=> $tabRep['fax'], 'mobile'=> $tabRep['mobile'], 'pref'=> $tabRep['pref'], 'profil'=> $tabRep['profil'], 'dateInscription'=> $tabRep['dateInscription'], 'dateValidation'=> $tabRep['dateValidation'], 'nombreConnexions'=> $tabRep['nombreConnexions'], 'dateDerniereConnexion'=> $tabRep['dateDerniereConnexion'], 'droits'=> $tabRep['droits'], 'droitsClients'=> $tabRep['droitsClients'], 'timeout'=> $timeOutSec, 'nbReponses'=> $tabRep['nbReponses'], 'formatMail'=> $tabRep['formatMail'], 'referenceParDefaut'=> $tabRep['referenceParDefaut'], 'dateDebutCompte'=> $tabRep['dateDebutCompte'], 'dateFinCompte'=> $tabRep['dateFinCompte'], 'maxFicheId'=> $tabRep['maxFicheId'], ); $tabTmp = $this->iDbCrm->select('clients', 'typeScore', 'id='.$tabRep['idClient'], true, MYSQL_ASSOC); $tabRep = $tabTmp[0]; $this->tabInfoUser['typeScore'] = $tabRep['typeScore']; debugLog('W',"CheckAuth $login/$password OK", __LINE__,__FILE__, __FUNCTION__, __CLASS__); return true; } debugLog('W',"CheckAuth $login/$password incorrect (IP=$ipConnexion)", __LINE__,__FILE__, __FUNCTION__, __CLASS__); return false; } debugLog('W',"CheckAuth $login/$password inexistant ou inactif (IP=$ipConnexion)", __LINE__,__FILE__, __FUNCTION__, __CLASS__); return false; } } ?>