MAJ des librairies depuis ws
This commit is contained in:
parent
ae80a36775
commit
2314188b29
@ -6270,79 +6270,122 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
|
||||
return $ret[0]['insDATEVE'];
|
||||
}
|
||||
|
||||
/** Recherche les siret associés à un siret (successeur et/ou prédécesseur)
|
||||
**
|
||||
** @param integer $siren Siren de l'entreprise
|
||||
** @param integer $nic Nic de l'étabissement
|
||||
** @param integer $lien Type de lien (-1=prédécesseur, 0=prédécesseur et/ou successeur, 1=successeur)
|
||||
**/
|
||||
/**
|
||||
* Recherche les siret associés à un siret (successeur et/ou prédécesseur)
|
||||
* @param int $siren
|
||||
* Siren de l'entreprise
|
||||
* @param int $nic
|
||||
* Nic de l'étabissement
|
||||
* @param int $lien
|
||||
* Type de lien (-1=prédécesseur, 0=prédécesseur et/ou successeur, 1=successeur)
|
||||
*/
|
||||
public function getSiretAssoc($siren, $nic, $lien=0)
|
||||
{
|
||||
$tabRet=array();
|
||||
$ret=$this->iDb->select('insee.insee_even',
|
||||
$tabRet = array();
|
||||
$ret = $this->iDb->select('insee.insee_even',
|
||||
'LPAD(insSIREN,9,0) AS insSIREN, LPAD(insNIC,5,0) AS insNIC, insDATEVE, insEVE, insAPET700, insSIEGE, insLIBCOM, insL1_NOMEN, insL2_COMP, insL4_VOIE, insL3_CADR, insL5_DISP, insL6_POST, insCODPOS, insL7_ETRG, insDEPCOM, insCODEVOIE, insNICTRAN, insSIRETPS, insDATEMAJ, idFlux, insSIRETASS, insDESTINAT, insTYPETAB, insORIGINE, insTRAN, insNOMEN, insENSEIGNE, insNUMVOIE, insINDREP, insTYPVOIE, insLIBVOIE, sirVersion',
|
||||
"insSIREN=$siren AND insNIC<>$nic AND (insEVE IN ('510','520','530','540', 'CTS','CTE','STS','STE','MTDS','MTDE','MTAS','MTAE') OR insEVE LIKE 'T%') AND insDATEMAJ IN (
|
||||
SELECT insDATEMAJ FROM insee.insee_even WHERE insSIREN=$siren AND insNIC=$nic AND (insEVE IN ('510','520','530','540', 'CTS','CTE','STS','STE','MTDS','MTDE','MTAS','MTAE') OR insEVE LIKE 'T%')
|
||||
)", false, MYSQL_ASSOC);
|
||||
|
||||
if ( count($ret)>0 ) {
|
||||
$datePre = $dateSuc = 0;
|
||||
$nicPre = $nicSuc = 0;
|
||||
|
||||
if (count($ret) > 0) {
|
||||
foreach ($ret as $iRet=>$tabEve) {
|
||||
if ($tabEve['sirVersion']==4) {
|
||||
if ($tabEve['insEVE']=='CTE' || $tabEve['insEVE']=='CTS' || $tabEve['insEVE']=='MTAE' || $tabEve['insEVE']=='MTAS') $typeLien='suc';
|
||||
elseif ($tabEve['insEVE']=='STE' || $tabEve['insEVE']=='STS' || $tabEve['insEVE']=='MTDE' || $tabEve['insEVE']=='MTDS') $typeLien='pre';
|
||||
else $typeLien='ind';
|
||||
if ($tabEve['sirVersion'] == 4) {
|
||||
if (in_array($tabEve['insEVE'], array('CTE','CTS','MTAE','MTAS'))) {
|
||||
$typeLien = 'suc';
|
||||
}
|
||||
elseif (in_array($tabEve['insEVE'], array('STE','STS','MTDE','MTDS'))) {
|
||||
$typeLien = 'pre';
|
||||
}
|
||||
else {
|
||||
$typeLien = 'ind';
|
||||
}
|
||||
} else {
|
||||
switch($tabEve['insTYPETAB']*1) {
|
||||
case 8:
|
||||
case 10:
|
||||
case 20:
|
||||
case 30:
|
||||
if ($lien==1) continue;
|
||||
$typeLien='pre';
|
||||
if ($lien == 1) continue;
|
||||
$typeLien = 'pre';
|
||||
break;
|
||||
case 9:
|
||||
case 11:
|
||||
case 21:
|
||||
case 31:
|
||||
if ($lien==-1) continue;
|
||||
$typeLien='suc';
|
||||
if ($lien == -1) continue;
|
||||
$typeLien = 'suc';
|
||||
break;
|
||||
default:
|
||||
switch($tabEve['insTRAN']) {
|
||||
case 'D': if ($lien==1) continue; $typeLien='pre'; break(2);
|
||||
case 'A': if ($lien==-1) continue; $typeLien='suc'; break(2);
|
||||
default : if ($lien<>0) continue; $typeLien='ind'; break;
|
||||
case 'D': if ($lien == 1) continue; $typeLien='pre'; break(2);
|
||||
case 'A': if ($lien == -1) continue; $typeLien='suc'; break(2);
|
||||
default : if ($lien != 0) continue; $typeLien='ind'; break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$adr1=$tabEve['insL1_NOMEN'];
|
||||
if ($adr1==NULL) $adr1=$tabEve['insNOMEN'];
|
||||
$adr2=$tabEve['insL2_COMP'];
|
||||
if ($adr2==NULL) $adr2=$tabEve['insENSEIGNE'];
|
||||
$adr4=$tabEve['insL4_VOIE'];
|
||||
if ($adr4==NULL) $adr4=preg_replace('/ +/',' ', $tabEve['insNUMVOIE'].' '.$tabEve['insINDREP'].' '.$tabEve['insTYPVOIE'].' '.$tabEve['insLIBVOIE']);
|
||||
// Le NIC prédécesseur ne peut pas être le NIC actuel
|
||||
if ($nicPre > 0 && $nicPre == $tabEve['insNIC']) {
|
||||
continue;
|
||||
}
|
||||
// Le NIC successeur ne peut pas être le NIC actuel
|
||||
if ($nicSuc > 0 && $nicSuc == $tabEve['insNIC']) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$tabRet[$typeLien]=array(
|
||||
'siren' => $tabEve['insSIREN'],
|
||||
// L'évènement successeur ne peut pas être antérieur au prédécesseur
|
||||
if ($dateSuc > 0 && $datePre > 0 && $dateSuc < $datePre) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Predecesseur et Successeur en mémoire
|
||||
if ($typeLien == 'pre') {
|
||||
$datePre = $tabEve['insDATEVE'];
|
||||
$nicPre = $tabEve['insNIC'];
|
||||
}
|
||||
if ($typeLien == 'suc') {
|
||||
$dateSuc = $tabEve['insDATEVE'];
|
||||
$nicSuc = $tabEve['insNIC'];
|
||||
}
|
||||
|
||||
// Data
|
||||
$adr1 = $tabEve['insL1_NOMEN'];
|
||||
if ($adr1 == null) {
|
||||
$adr1=$tabEve['insNOMEN'];
|
||||
}
|
||||
$adr2 = $tabEve['insL2_COMP'];
|
||||
if ($adr2 == null) {
|
||||
$adr2=$tabEve['insENSEIGNE'];
|
||||
}
|
||||
$adr4 = $tabEve['insL4_VOIE'];
|
||||
if ($adr4 == null) {
|
||||
$adr4 = preg_replace('/ +/',' ', $tabEve['insNUMVOIE'].' '.$tabEve['insINDREP'].' '.
|
||||
$tabEve['insTYPVOIE'].' '.$tabEve['insLIBVOIE']);
|
||||
}
|
||||
|
||||
$tabRet[$typeLien] = array(
|
||||
'siren' => $tabEve['insSIREN'],
|
||||
'nic' => $tabEve['insNIC'],
|
||||
'apeEtab' => $tabEve['insAPET700'],
|
||||
'codeEve' => $tabEve['insEVE'],
|
||||
'dateEve' => $tabEve['insDATEVE'],
|
||||
'adrL1' => trim($adr1),
|
||||
'adrL2' => trim($adr2),
|
||||
'adrL3' => trim(prepareString($tabEve['insL3_CADR'])),
|
||||
'adrL4' => trim($adr4),
|
||||
'adrL5' => trim($tabEve['insL5_DISP']),
|
||||
'adrL6' => trim($tabEve['insL6_POST']),
|
||||
'adrL7' => trim($tabEve['insL7_ETRG']),
|
||||
'adrL1' => trim($adr1),
|
||||
'adrL2' => trim($adr2),
|
||||
'adrL3' => trim(prepareString($tabEve['insL3_CADR'])),
|
||||
'adrL4' => trim($adr4),
|
||||
'adrL5' => trim($tabEve['insL5_DISP']),
|
||||
'adrL6' => trim($tabEve['insL6_POST']),
|
||||
'adrL7' => trim($tabEve['insL7_ETRG']),
|
||||
'depCom' => $tabEve['insDEPCOM'],
|
||||
'rivoli' => $tabEve['insCODEVOIE'],
|
||||
'siege' => $tabEve['insSIEGE'],
|
||||
'siege' => $tabEve['insSIEGE'],
|
||||
'destinat' => $tabEve['insDESTINAT'],
|
||||
'typEtab' => $tabEve['insTYPETAB'],
|
||||
'origine' => $tabEve['insORIGINE'],
|
||||
// insNICTRAN, insSIRETPS, insDATEMAJ, idFlux, insSIRETASS,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
84
library/Scores/Account/Access.php
Normal file
84
library/Scores/Account/Access.php
Normal file
@ -0,0 +1,84 @@
|
||||
<?php
|
||||
return array (
|
||||
|
||||
//RECHERCHE
|
||||
'RECHCSV' => "Export des résultats de la recherche",
|
||||
'IPARI' => "Investigation par l'image IparI©",
|
||||
'HISTOBODACC' => "Historique des annonces bodacc",
|
||||
'INVESTIG' => "Investigation",
|
||||
'SEARCHENT' => "Recherche Entreprise",
|
||||
'SEARCHDIR' => "Recherche Dirigeant",
|
||||
'SEARCHACT' => "Recherche Actionnaire",
|
||||
|
||||
//IDENTITE
|
||||
'IDENTITE' => "Fiche d'identité",
|
||||
'IDPROCOL' => 'Fiche procédure collective',
|
||||
'LIENS' => "Liens inter-entreprise",
|
||||
'ETABLISSEMENTS' => "Liste des établissements",
|
||||
'GROUPE' => "Informations et organigramme du groupe",
|
||||
'EVENINSEE' => 'Évènements INSEE',
|
||||
'AVISINSEE' => 'Avis de situation INSEE',
|
||||
'AVISRNCS' => 'Avis de situation RNCS',
|
||||
'RNVP' => "Normalisation postale",
|
||||
|
||||
//DIRIGEANT
|
||||
'DIRIGEANTS' => "Liste des dirigeants",
|
||||
'DIRIGEANTSOP' => "Liste des dirigeants opérationnels",
|
||||
|
||||
//FINANCE
|
||||
'SYNTHESE' => "Synthèse",
|
||||
'RATIOS' => "Ratios",
|
||||
'FLUX' => "Flux de trésorerie",
|
||||
'LIASSE' => "Liasse fiscale",
|
||||
'LIASSEXLS' => "Export des Liasses au format XLS",
|
||||
'UPLOADBILAN' => "Saisie de bilan",
|
||||
'BOURSE' => "Bourse & cotations",
|
||||
'BANQUE' => "Relations bancaires",
|
||||
|
||||
//JURIDIQUE
|
||||
'ANNONCES' => "Annonces légales",
|
||||
'INFOSREG' => "Informations réglementée",
|
||||
'COMPETENCES' => "Compétences territoriales",
|
||||
'CONVENTIONS' => "Conventions collectives",
|
||||
'MARQUES' => "Marques déposées",
|
||||
|
||||
//EVALUATION
|
||||
'INDISCORE' => "indiScore©",
|
||||
'INDISCORE2' => "Rapport synthetique",
|
||||
'INDISCORE3' => "Rapport complet",
|
||||
'INDISCOREP' => "indiScore+",
|
||||
'INDISCORE2P' => "Rapport synthetique+",
|
||||
'INDISCORE3P' => "Rapport complet+",
|
||||
'VALORISATION' => "Valorisation",
|
||||
'SCORECSF' => "Score CSF",
|
||||
'ENQUETEC' => "Enquête commerciale",
|
||||
'AVISCREDIT' => "Avis de crédit personnalisé",
|
||||
|
||||
//PIECES
|
||||
'KBIS' => "Extrait RCS",
|
||||
'ACTES' => "Pièces officielles",
|
||||
'PRIVILEGES' => "Privilèges",
|
||||
|
||||
//SURVEILLANCES
|
||||
'SURVANNONCE' => "Surveillance des annonces légales",
|
||||
'SURVINSEE' => "Surveillance des événements INSEE",
|
||||
'SURVBILAN' => "Surveillance des bilans saisies (liasse fiscale)",
|
||||
'SURVSCORE' => "Surveillance des événements sur le score",
|
||||
'SURVACTES' => "Surveillance des pieces officielles (comptes annuels, actes)",
|
||||
'SURVDIRIGEANTS'=> "Surveillance des dirigeants",
|
||||
'SURVPAIEMENTS' => "Surveillance des paiements",
|
||||
'SURVLIENS' => "Surveillance des liens financiers",
|
||||
'SURVPRIV' => "Surveillance des privilèges",
|
||||
|
||||
//OPTIONS
|
||||
'MONPROFIL' => "Mon profil",
|
||||
'EDITION' => "Mode Edition",
|
||||
'PORTEFEUILLE' => "Portefeuille",
|
||||
'SURVLISTE' => "Liste des surveillances",
|
||||
|
||||
//DIVERS
|
||||
'INTERNATIONAL' => "Recherche Internationale",
|
||||
'BDF' => "Banque de France",
|
||||
'WORLDCHECK' => "World-Check Risk Intelligence",
|
||||
|
||||
);
|
@ -82,11 +82,33 @@ class Scores_Auth_Adapter_Db implements Zend_Auth_Adapter_Interface
|
||||
$identity->hash = $this->_hash;
|
||||
|
||||
if ( null === $result ) {
|
||||
return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND, $identity);
|
||||
return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND, $identity, array("Identifiant ou mot de passe invalid"));
|
||||
} else {
|
||||
if ( $this->_password == $result->password
|
||||
|| $this->_password == md5($result->login.'|'.$result->password) ) {
|
||||
|
||||
/**
|
||||
* Date de debut de compte
|
||||
*/
|
||||
if ( !empty($result->dateDebutCompte) && $result->dateDebutCompte!='0000-00-00' ) {
|
||||
$today = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
|
||||
$dateDebutCompte = mktime(0, 0, 0, substr($result->dateDebutCompte,5,2), substr($result->dateDebutCompte,8,2), substr($result->dateDebutCompte,0,4));
|
||||
if ( $today < $dateDebutCompte ) {
|
||||
return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID, $identity, array("Date de validité dépassé"));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Date de fin de compte
|
||||
*/
|
||||
if ( !empty($result->dateFinCompte) && $result->dateFinCompte!='0000-00-00' ) {
|
||||
$today = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
|
||||
$dateFinCompte = mktime(0, 0, 0, substr($result->dateFinCompte,5,2), substr($result->dateFinCompte,8,2), substr($result->dateFinCompte,0,4));
|
||||
if ( $today > $dateFinCompte ) {
|
||||
return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID, $identity, array("Date de validité dépassé"));
|
||||
}
|
||||
}
|
||||
|
||||
$identity->id = $result->id;
|
||||
$identity->idClient = $result->idClient;
|
||||
$timeout = (!empty($result->timeout)) ? $result->timeout : $this->_timeout;
|
||||
@ -95,7 +117,7 @@ class Scores_Auth_Adapter_Db implements Zend_Auth_Adapter_Interface
|
||||
return new Zend_Auth_Result(Zend_Auth_Result::SUCCESS, $identity);
|
||||
|
||||
} else {
|
||||
return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID, $identity);
|
||||
return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID, $identity, array("Identification impossible"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2,37 +2,66 @@
|
||||
class Scores_Auth_Adapter_Ws implements Zend_Auth_Adapter_Interface
|
||||
{
|
||||
/**
|
||||
*
|
||||
* Identifiant de l'utilisateur
|
||||
* @var string
|
||||
*/
|
||||
protected $_username;
|
||||
|
||||
/**
|
||||
*
|
||||
* Password
|
||||
* @var string
|
||||
*/
|
||||
protected $_password;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var unknown
|
||||
* Timeout
|
||||
* @var int
|
||||
*/
|
||||
protected $_timeout = 1800;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var unknown
|
||||
* Marqueur de vérification IP (en iponly)
|
||||
* @var boolean
|
||||
*/
|
||||
protected $_checkIp = false;
|
||||
|
||||
public function __construct($username, $password, $iponly = false)
|
||||
/**
|
||||
* Marqueur de vérification de hach
|
||||
* @var boolean
|
||||
*/
|
||||
protected $_checkHach = false;
|
||||
|
||||
/**
|
||||
* Liste des IPs des frontends (proxy)
|
||||
* @var array
|
||||
*/
|
||||
protected $listProxyIp = array(
|
||||
'62.210.222.34',
|
||||
);
|
||||
|
||||
/**
|
||||
* Authentification par WS
|
||||
* @param string $username
|
||||
* @param string $password
|
||||
* @param string $mode
|
||||
*/
|
||||
public function __construct($username, $password, $mode = null)
|
||||
{
|
||||
$this->_username = $username;
|
||||
$this->_password = $password;
|
||||
if ($iponly){
|
||||
$this->_password = 'iponly:'.$_SERVER['REMOTE_ADDR'];
|
||||
|
||||
if ($mode == 'hach') {
|
||||
$this->_checkHach = true;
|
||||
}
|
||||
|
||||
if ($mode == 'iponly'){
|
||||
$ip = $_SERVER['REMOTE_ADDR'];
|
||||
if ( isset($_SERVER['HTTP_X_FORWARDED_FOR']) && in_array($ip, $this->listProxyIp)) {
|
||||
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
|
||||
}
|
||||
$this->_password = 'iponly:'.$ip;
|
||||
$this->_checkIp = true;
|
||||
}
|
||||
$this->_checkIp = $iponly;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -41,77 +70,96 @@ class Scores_Auth_Adapter_Ws implements Zend_Auth_Adapter_Interface
|
||||
*/
|
||||
public function authenticate()
|
||||
{
|
||||
$adressIp = $_SERVER['REMOTE_ADDR'];
|
||||
|
||||
require_once 'Scores/WsScores.php';
|
||||
$ws = new WsScores($this->_username, $this->_password);
|
||||
$InfosLogin = $ws->getInfosLogin($this->_username, $adressIp);
|
||||
$identity = new stdClass();
|
||||
$identity->username = $this->_username;
|
||||
$identity->password = $this->_password;
|
||||
$identity->email = $InfosLogin->result->email;
|
||||
$identity->profil = $InfosLogin->result->profil;
|
||||
$identity->pref = $InfosLogin->result->pref;
|
||||
$identity->droits = $InfosLogin->result->droits;
|
||||
$identity->droitsClients = $InfosLogin->result->droitsClients;
|
||||
$identity->nom = $InfosLogin->result->nom;
|
||||
$identity->prenom = $InfosLogin->result->prenom;
|
||||
$identity->tel = $InfosLogin->result->tel;
|
||||
$identity->fax = $InfosLogin->result->fax;
|
||||
$identity->mobile = $InfosLogin->result->mobile;
|
||||
$identity->id = $InfosLogin->result->id;
|
||||
$identity->idClient = $InfosLogin->result->idClient;
|
||||
$identity->reference = $InfosLogin->result->reference;
|
||||
$identity->nbReponses = $InfosLogin->result->nbReponses;
|
||||
$identity->typeScore = $InfosLogin->result->typeScore;
|
||||
$identity->dateValidation = $InfosLogin->result->dateValidation;
|
||||
$identity->nombreConnexions = $InfosLogin->result->nombreConnexions;
|
||||
$identity->dateDerniereConnexion = $InfosLogin->result->dateDerniereConnexion;
|
||||
$identity->dateDebutCompte = $InfosLogin->result->dateDebutCompte;
|
||||
$identity->dateFinCompte = $InfosLogin->result->dateFinCompte;
|
||||
$identity->acceptationCGU = $InfosLogin->result->acceptationCGU;
|
||||
$identity->ip = $adressIp;
|
||||
$identity->modeEdition = false;
|
||||
|
||||
$timeout = (!empty($InfosLogin->result->timeout)) ? $InfosLogin->result->timeout : $this->_timeout;
|
||||
$identity->timeout = $timeout;
|
||||
|
||||
$identity->time = time() + $timeout;
|
||||
|
||||
$lang = in_array($InfosLogin->result->lang, array('fr','en')) ? $InfosLogin->result->lang : 'fr';
|
||||
$identity->lang = $lang;
|
||||
$identity->langtmp = $lang;
|
||||
|
||||
/*
|
||||
* Adresse Ip interdites
|
||||
*/
|
||||
$ipInterdites =
|
||||
'81.252.88.0-81.252.88.7' // CTE D AGGLOMERATION DE SOPHIA
|
||||
. ';' . '195.200.187.163' // PacWan
|
||||
. ';' . '213.11.81.41' // Verizon France SAS
|
||||
. ';' . '83.206.171.252' // FR-BASE-D-INFORMATIONS-LEGALES-BI
|
||||
. ';' . '81.255.32.139'
|
||||
. ';' . '212.155.191.1*' // Satair A/S
|
||||
. ';' . '217.70.1*.17' // OJSC "Sibirtelecom"
|
||||
. ';' . '212.37.196.156' // GENERALE-MULTIMEDIA-SUD
|
||||
. ';' . '80.245.60.121' // Planete Marseille - Mailclub
|
||||
. ';' . '213.246.57.101' // IKOULA
|
||||
. ';' . '193.104.158.0-193.104.158.255' // Altares.fr
|
||||
. ';' . '195.6.3.0-195.6.3.255' // ORT
|
||||
. ';' . '217.144.112.0-217.144.116.63' // Coface
|
||||
;
|
||||
if ( $this->checkPlagesIp($ipInterdites, $adressIp) ) {
|
||||
return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_UNCATEGORIZED, $identity);
|
||||
$ip = $_SERVER['REMOTE_ADDR'];
|
||||
if ( isset($_SERVER['HTTP_X_FORWARDED_FOR']) && in_array($ip, $this->listProxyIp)) {
|
||||
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
|
||||
}
|
||||
|
||||
// Renvoi
|
||||
if ( is_string($InfosLogin) || $InfosLogin->error->errnum!=0){
|
||||
$message = $InfosLogin;
|
||||
return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID, $identity, array($message));
|
||||
} elseif ($this->_username == $InfosLogin->result->login) {
|
||||
return new Zend_Auth_Result(Zend_Auth_Result::SUCCESS, $identity);
|
||||
$ws = new Scores_Ws_Client('gestion', '0.3');
|
||||
$ws->setHttpLogin($this->_username);
|
||||
$ws->setHttpPassword($this->_password);
|
||||
$adressIp = $_SERVER['REMOTE_ADDR'];
|
||||
$parameters = new stdClass();
|
||||
$parameters->login = $this->_username;
|
||||
$parameters->ipUtilisateur = $ip;
|
||||
$parameters->from = 'auth';
|
||||
$InfosLogin = $ws->getInfosLogin($parameters);
|
||||
|
||||
// --- Renvoi
|
||||
if ( is_string($InfosLogin) || $InfosLogin->error->errnum != 0 ) {
|
||||
$message = $InfosLogin;
|
||||
return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID, $identity, array($message));
|
||||
}
|
||||
// --- Assignation identity
|
||||
elseif ( $InfosLogin !== false && !empty($InfosLogin->result->login)) {
|
||||
$identity = new stdClass();
|
||||
if ($this->_checkIp || $this->_checkHach) {
|
||||
Zend_Registry::get('firebug')->info("IN");
|
||||
$identity->password = $this->_password;
|
||||
} else {
|
||||
$identity->password = md5($InfosLogin->result->login.'|'.$this->_password);
|
||||
}
|
||||
Zend_Registry::get('firebug')->info($identity->password);
|
||||
$identity->username = $InfosLogin->result->login;
|
||||
$identity->email = $InfosLogin->result->email;
|
||||
$identity->profil = $InfosLogin->result->profil;
|
||||
$identity->pref = $InfosLogin->result->pref;
|
||||
$identity->droits = $InfosLogin->result->droits;
|
||||
$identity->droitsClients = $InfosLogin->result->droitsClients;
|
||||
$identity->nom = $InfosLogin->result->nom;
|
||||
$identity->prenom = $InfosLogin->result->prenom;
|
||||
$identity->tel = $InfosLogin->result->tel;
|
||||
$identity->fax = $InfosLogin->result->fax;
|
||||
$identity->mobile = $InfosLogin->result->mobile;
|
||||
$identity->id = $InfosLogin->result->id;
|
||||
$identity->idClient = $InfosLogin->result->idClient;
|
||||
$identity->reference = $InfosLogin->result->reference;
|
||||
$identity->nbReponses = $InfosLogin->result->nbReponses;
|
||||
$identity->typeScore = $InfosLogin->result->typeScore;
|
||||
$identity->dateValidation = $InfosLogin->result->dateValidation;
|
||||
$identity->nombreConnexions = $InfosLogin->result->nombreConnexions;
|
||||
$identity->dateDerniereConnexion = $InfosLogin->result->dateDerniereConnexion;
|
||||
$identity->dateDebutCompte = $InfosLogin->result->dateDebutCompte;
|
||||
$identity->dateFinCompte = $InfosLogin->result->dateFinCompte;
|
||||
$identity->acceptationCGU = $InfosLogin->result->acceptationCGU;
|
||||
$identity->ip = $ip;
|
||||
$identity->version = $InfosLogin->result->version;
|
||||
$identity->modeEdition = false;
|
||||
|
||||
$timeout = (!empty($InfosLogin->result->timeout)) ? $InfosLogin->result->timeout : $this->_timeout;
|
||||
$identity->timeout = $timeout;
|
||||
$identity->time = time() + $timeout;
|
||||
$lang = in_array($InfosLogin->result->lang, array('fr','en')) ? $InfosLogin->result->lang : 'fr';
|
||||
$identity->lang = $lang;
|
||||
$identity->langtmp = $lang;
|
||||
|
||||
// --- Adresse Ip interdites
|
||||
$ipInterdites =
|
||||
'81.252.88.0-81.252.88.7' // CTE D AGGLOMERATION DE SOPHIA
|
||||
. ';' . '195.200.187.163' // PacWan
|
||||
. ';' . '213.11.81.41' // Verizon France SAS
|
||||
. ';' . '83.206.171.252' // FR-BASE-D-INFORMATIONS-LEGALES-BI
|
||||
. ';' . '81.255.32.139'
|
||||
. ';' . '212.155.191.1*' // Satair A/S
|
||||
. ';' . '217.70.1*.17' // OJSC "Sibirtelecom"
|
||||
. ';' . '212.37.196.156' // GENERALE-MULTIMEDIA-SUD
|
||||
. ';' . '80.245.60.121' // Planete Marseille - Mailclub
|
||||
. ';' . '213.246.57.101' // IKOULA
|
||||
. ';' . '193.104.158.0-193.104.158.255' // Altares.fr
|
||||
. ';' . '195.6.3.0-195.6.3.255' // ORT
|
||||
. ';' . '217.144.112.0-217.144.116.63' // Coface
|
||||
;
|
||||
if ( $this->checkPlagesIp($ipInterdites, $adressIp) ) {
|
||||
return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_UNCATEGORIZED, $identity);
|
||||
}
|
||||
|
||||
// --- OK connecté
|
||||
$this->_username = $identity->username;
|
||||
$this->_password = $identity->password;
|
||||
return new Zend_Auth_Result(Zend_Auth_Result::SUCCESS, $identity);
|
||||
|
||||
} else {
|
||||
return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_UNCATEGORIZED, $identity);
|
||||
return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_UNCATEGORIZED, $identity, array("Identification impossible"));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -55,12 +55,6 @@ class Scores_Ws_Server
|
||||
*/
|
||||
public $serviceVersion = null;
|
||||
|
||||
/**
|
||||
* Activer le marqueur lorsqu'une action implémente des méthodes publiques afin de ne par logguer les appels
|
||||
* @var boolean
|
||||
*/
|
||||
protected $serviceActionSubcall = false;
|
||||
|
||||
/**
|
||||
* List all application IPs
|
||||
* @var array
|
||||
@ -618,7 +612,7 @@ class Scores_Ws_Server
|
||||
$output = false;
|
||||
$droits = $this->User->droits;
|
||||
if ( is_array($droits) ) {
|
||||
if ( in_array($perm, $droits) ){
|
||||
if ( in_array(strtolower($perm), $droits) ){
|
||||
$output = true;
|
||||
}
|
||||
} else {
|
||||
@ -695,7 +689,7 @@ class Scores_Ws_Server
|
||||
$resultId = $userM->fetchAll($sql);
|
||||
} catch (Zend_Db_Exception $e) {
|
||||
$c = Zend_Registry::get('config');
|
||||
file_put_contents($c->profil->path->data.'/log/application.log',
|
||||
file_put_contents($c->profil->path->shared.'/log/application.log',
|
||||
date('Y-m-d H:i:s').'- AUTH : '.$e->getMessage()."\n", FILE_APPEND);
|
||||
return '0000';
|
||||
}
|
||||
|
@ -60,7 +60,7 @@ class SdMetier_Rnvp_Adresse
|
||||
{
|
||||
try {
|
||||
$etabM = new Application_Model_JoEtablissements();
|
||||
$sql = $etabM->select(true)->columns(array('LPAD(source,3,0)', 'LPAD(source_id,20,0)'))
|
||||
$sql = $etabM->select(true)->columns(array('LPAD(source,3,0) AS source', 'LPAD(source_id,20,0) AS sourceId'))
|
||||
->where('siren=?', substr($companyId,0,9))
|
||||
->where('nic=?', substr($companyId,9,5));
|
||||
$etabResult = $etabM->fetchRow($sql);
|
||||
|
@ -1,210 +1,206 @@
|
||||
<?php
|
||||
require_once 'framework/common/mysql.php';
|
||||
require_once 'framework/common/strings.php';
|
||||
require_once 'framework/common/dates.php';
|
||||
require_once 'framework/common/mysql.php';
|
||||
require_once 'framework/common/strings.php';
|
||||
require_once 'framework/common/dates.php';
|
||||
|
||||
define ('REP_TEMP', LOG_PATH);
|
||||
// Environnement : DEV ou PRD
|
||||
define ('ENV', 'PRD');
|
||||
define ('EOL', "\n");
|
||||
define ('REP_TEMP', LOG_PATH);
|
||||
// Environnement : DEV ou PRD
|
||||
define ('ENV', 'PRD');
|
||||
define ('EOL', "\n");
|
||||
|
||||
define ('MODE_CLI', 1);
|
||||
define ('MODE_WWW', 2);
|
||||
define ('MODE_WS', 3);
|
||||
define ('MODE_CLI', 1);
|
||||
define ('MODE_WWW', 2);
|
||||
define ('MODE_WS', 3);
|
||||
|
||||
if (@$_SERVER['argc']>0) define('MODE_EXEC', MODE_CLI);
|
||||
else define('MODE_EXEC', MODE_WS);
|
||||
/** @todo Gérer la distinction du mode WWW du WS
|
||||
else define('MODE_EXEC', MODE_WWW);
|
||||
if (@$_SERVER['argc']>0) define('MODE_EXEC', MODE_CLI);
|
||||
else define('MODE_EXEC', MODE_WS);
|
||||
|
||||
/** TimeStamp Unix
|
||||
** Si $onlyMiliSec=true, retourne juste les milisec du timestamp
|
||||
**/
|
||||
function microtime_float($onlyMiliSec=false) {
|
||||
list($usec, $sec) = explode(' ', microtime());
|
||||
if (!$onlyMiliSec)
|
||||
return ((float)$usec + (float)$sec);
|
||||
else
|
||||
return $usec;
|
||||
}
|
||||
|
||||
/** Fait une pause aléatoire entre 0 et 15 secondes par défaut
|
||||
**/
|
||||
function randsleep($min_sec=0, $max_sec=15) {
|
||||
sleep(rand($min_sec, $max_sec));
|
||||
}
|
||||
|
||||
/** Retourne la factorielle d'un nombre : 4! = 1*2*3*4 = 24
|
||||
**/
|
||||
function factorielle($nbr) {
|
||||
if($nbr === 0) // condition d'arret
|
||||
return 1;
|
||||
else
|
||||
return $nbr*factorielle($nbr-1);
|
||||
}
|
||||
|
||||
/** Vérification que la variable demandé respecte bien les règles passées en paramètres
|
||||
* @param mixed Variable à tester
|
||||
* @param int Longueur minimum en caractère de la variable
|
||||
* @param int Longueur mximum
|
||||
* @param char(1) Type de variable <b>A</b>:Alphanumérique / <b>N</b>:Numérique
|
||||
* @param mixed Message textuel d'erreur à afficher en cas d'erreur ou false
|
||||
* @return mixed true, false ou Message d'erreur passé en paramètre
|
||||
*/
|
||||
function valideData($variable, $taille_min, $taille_max, $type_variable, $erreur=false) {
|
||||
if ( strlen((string)$variable) < $taille_min )
|
||||
return $erreur;
|
||||
|
||||
/** TimeStamp Unix
|
||||
** Si $onlyMiliSec=true, retourne juste les milisec du timestamp
|
||||
**/
|
||||
function microtime_float($onlyMiliSec=false) {
|
||||
list($usec, $sec) = explode(' ', microtime());
|
||||
if (!$onlyMiliSec)
|
||||
return ((float)$usec + (float)$sec);
|
||||
else
|
||||
return $usec;
|
||||
}
|
||||
if ( strlen((string)$variable) > $taille_max )
|
||||
return $erreur;
|
||||
|
||||
/** Fait une pause aléatoire entre 0 et 15 secondes par défaut
|
||||
**/
|
||||
function randsleep($min_sec=0, $max_sec=15) {
|
||||
sleep(rand($min_sec, $max_sec));
|
||||
}
|
||||
|
||||
/** Retourne la factorielle d'un nombre : 4! = 1*2*3*4 = 24
|
||||
**/
|
||||
function factorielle($nbr) {
|
||||
if($nbr === 0) // condition d'arret
|
||||
return 1;
|
||||
else
|
||||
return $nbr*factorielle($nbr-1);
|
||||
}
|
||||
|
||||
/** Vérification que la variable demandé respecte bien les règles passées en paramètres
|
||||
* @param mixed Variable à tester
|
||||
* @param int Longueur minimum en caractère de la variable
|
||||
* @param int Longueur mximum
|
||||
* @param char(1) Type de variable <b>A</b>:Alphanumérique / <b>N</b>:Numérique
|
||||
* @param mixed Message textuel d'erreur à afficher en cas d'erreur ou false
|
||||
* @return mixed true, false ou Message d'erreur passé en paramètre
|
||||
*/
|
||||
function valideData($variable, $taille_min, $taille_max, $type_variable, $erreur=false) {
|
||||
if ( strlen((string)$variable) < $taille_min )
|
||||
return $erreur;
|
||||
|
||||
if ( strlen((string)$variable) > $taille_max )
|
||||
return $erreur;
|
||||
|
||||
if ( $type_variable == 'A' )
|
||||
if ( is_string($variable) == true )
|
||||
return true;
|
||||
else
|
||||
return $erreur;
|
||||
|
||||
elseif ( $type_variable == 'N')
|
||||
{
|
||||
for ($i=0; $i < strlen((string)$variable); $i++)
|
||||
{
|
||||
$car = substr((string)$variable,$i,1);
|
||||
if ($car<'0' || $car>'9')
|
||||
return $erreur;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
return $erreur;
|
||||
}
|
||||
|
||||
function adapteOCtets($size) {
|
||||
$kb = 1024; // Kilobyte
|
||||
$mb = 1024 * $kb; // Megabyte
|
||||
$gb = 1024 * $mb; // Gigabyte
|
||||
$tb = 1024 * $gb; // Terabyte
|
||||
if($size==0) return '0';
|
||||
else if($size < $kb) return $size.'o';
|
||||
else if($size < $mb) return round($size/$kb,2).'ko';
|
||||
else if($size < $gb) return round($size/$mb,2).'Mo';
|
||||
else if($size < $tb) return round($size/$gb,2).'Go';
|
||||
else return round($size/$tb,2).'To';
|
||||
}
|
||||
|
||||
/**
|
||||
** Enregistrer une information dans la log
|
||||
**
|
||||
** @param string $debugLevel E=Error, W=Warning, N=Notice, I=Info, D=Debug
|
||||
** @param string $message Message d'erreur à inscrire dans la log
|
||||
** @param integer $line __LINE__
|
||||
** @param string $file __FILE__
|
||||
** @param string $function __FUNCTION__
|
||||
** @param string $class __CLASS___
|
||||
**/
|
||||
function debugLog($debugLevel, $message, $line, $file, $function, $class) {
|
||||
if (!file_exists(LOG_PATH.'/debug.log')) {
|
||||
$fp=@fopen(LOG_PATH.'/debug.log', 'a');
|
||||
@fwrite($fp, 'Date/Heure;Niveau;Script;Login;Password;Adresse IP;Action SOAP;Ligne;Fichier;Fonction;Classe;Domaine;POST DATA;Memory;Message'.EOL);
|
||||
} else
|
||||
$fp=@fopen(LOG_PATH.'/debug.log', 'a');
|
||||
@fwrite($fp, date('Y/m/d-H:i:s') .';'. $debugLevel .';'. $_SERVER['PHP_SELF'] .';'. $_SERVER['PHP_AUTH_USER'] .';'. $_SERVER['PHP_AUTH_PW'] .';'.
|
||||
$_SERVER['REMOTE_ADDR'] .';'. $_SERVER['HTTP_SOAPACTION'] .';'.$line.';'. $file.';'. $function.';'. $class .';'.
|
||||
@gethostbyaddr($_SERVER['REMOTE_ADDR']) .';'. $HTTP_RAW_POST_DATA .';'. @memory_get_usage().';'. $message . EOL);
|
||||
@fclose($fp);
|
||||
if ($debugLevel=='E'){
|
||||
if (!file_exists(LOG_PATH.'/debugError.log')) {
|
||||
$fp=@fopen(LOG_PATH.'/debugError.log', 'a');
|
||||
@fwrite($fp, 'Date/Heure;Niveau;Script;Login;Password;Adresse IP;Action SOAP;Ligne;Fichier;Fonction;Classe;Domaine;POST DATA;Message'.EOL);
|
||||
} else
|
||||
$fp=fopen(LOG_PATH.'/debugError.log', 'a');
|
||||
@fwrite($fp, date('Y/m/d-H:i:s') .';'. $debugLevel .';'. $_SERVER['PHP_SELF'] .';'. $_SERVER['PHP_AUTH_USER'] .';'. $_SERVER['PHP_AUTH_PW'] .';'.
|
||||
$_SERVER['REMOTE_ADDR'] .';'. $_SERVER['HTTP_SOAPACTION'] .';'.$line.';'. $file.';'. $function.';'. $class .';'.
|
||||
@gethostbyaddr($_SERVER['REMOTE_ADDR']) .';'. $HTTP_RAW_POST_DATA .';'. @memory_get_usage().';'. $message . EOL);
|
||||
@fclose($fp);
|
||||
//die($message);
|
||||
}
|
||||
}
|
||||
|
||||
function prepareString($str) {
|
||||
$tabReplace = array(
|
||||
'œ' => "oe",
|
||||
''.chr(160) => '',
|
||||
);
|
||||
|
||||
$str = utf8_decode($str);
|
||||
$str = strtr($str,$tabReplace);
|
||||
return utf8_encode($str);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
** Déplacement d'un fichier. Retourne false en cas d'erreur.
|
||||
**
|
||||
** @param string $from
|
||||
** @param string $to
|
||||
** @return bool
|
||||
**/
|
||||
function move($from, $to) {
|
||||
return (copy($from, $to) and unlink($from));
|
||||
}
|
||||
|
||||
/** Converti une IP en nombre
|
||||
**
|
||||
** @param string $ip Adresse IP
|
||||
** @return integer
|
||||
**/
|
||||
function getIpNumber($ip) {
|
||||
$tab=explode('.', $ip);
|
||||
return (($tab[0]*256*256*256) + ($tab[1]*256*256) + ($tab[2]*256) + ($tab[3]));
|
||||
}
|
||||
|
||||
/** Vérifie si une IP est dans une plage du type 192.168.3.1-192.168.3.10
|
||||
**
|
||||
** @param string $plage_1 Plage IP de début
|
||||
** @param string $plage_2 Plage IP de fin
|
||||
** @param string $ip Adresse IP à tester
|
||||
** @return boolean
|
||||
**/
|
||||
function in_plage($plage_1,$plage_2,$ip){
|
||||
$ip2=getIpNumber($ip);
|
||||
if ($ip2>=getIpNumber($plage_1) && $ip2<=getIpNumber($plage_2))
|
||||
if ( $type_variable == 'A' )
|
||||
if ( is_string($variable) == true )
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
return $erreur;
|
||||
|
||||
/** Controle si une adresse IP est dans une liste des IP communiquées sous la forme 192.168.3.5-192.68.3.10;192.168.3.*;192.168.3.10
|
||||
**
|
||||
** @param string $strPlageIP La plage d'adresses IP
|
||||
** @param string $adresseIP L'adresse IP à tester
|
||||
** @return boolean
|
||||
**/
|
||||
function checkPlagesIp($strPlageIP, $adresseIP) {
|
||||
$connected=false;
|
||||
$tabIpAllowed=explode(';', trim($strPlageIP));
|
||||
if (count($tabIpAllowed)==1 && $tabIpAllowed[0]=='')
|
||||
$tabIpAllowed=array();
|
||||
|
||||
foreach ($tabIpAllowed as $ip) {
|
||||
$tabPlages=explode('-', $ip);
|
||||
// C'est une plage d'adresse '-'
|
||||
if (isset($tabPlages[1]))
|
||||
$connected=in_plage($tabPlages[0],$tabPlages[1],$adresseIP);
|
||||
else {
|
||||
// C'est une adresse avec ou sans masque '*'
|
||||
if (preg_match('/^'.str_replace('*','.*',str_replace('.','\.',$ip)).'$/', $adresseIP) )
|
||||
$connected=true;
|
||||
}
|
||||
if ($connected) break;
|
||||
}
|
||||
if (count($tabIpAllowed)==0) return false;
|
||||
elseif (!$connected) {
|
||||
return false;
|
||||
elseif ( $type_variable == 'N')
|
||||
{
|
||||
for ($i=0; $i < strlen((string)$variable); $i++)
|
||||
{
|
||||
$car = substr((string)$variable,$i,1);
|
||||
if ($car<'0' || $car>'9')
|
||||
return $erreur;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
return $erreur;
|
||||
}
|
||||
|
||||
function adapteOCtets($size) {
|
||||
$kb = 1024; // Kilobyte
|
||||
$mb = 1024 * $kb; // Megabyte
|
||||
$gb = 1024 * $mb; // Gigabyte
|
||||
$tb = 1024 * $gb; // Terabyte
|
||||
if($size==0) return '0';
|
||||
else if($size < $kb) return $size.'o';
|
||||
else if($size < $mb) return round($size/$kb,2).'ko';
|
||||
else if($size < $gb) return round($size/$mb,2).'Mo';
|
||||
else if($size < $tb) return round($size/$gb,2).'Go';
|
||||
else return round($size/$tb,2).'To';
|
||||
}
|
||||
|
||||
/**
|
||||
** Enregistrer une information dans la log
|
||||
**
|
||||
** @param string $debugLevel E=Error, W=Warning, N=Notice, I=Info, D=Debug
|
||||
** @param string $message Message d'erreur à inscrire dans la log
|
||||
** @param integer $line __LINE__
|
||||
** @param string $file __FILE__
|
||||
** @param string $function __FUNCTION__
|
||||
** @param string $class __CLASS___
|
||||
**/
|
||||
function debugLog($debugLevel, $message, $line, $file, $function, $class) {
|
||||
if (!file_exists(LOG_PATH.'/debug.log')) {
|
||||
$fp=@fopen(LOG_PATH.'/debug.log', 'a');
|
||||
@fwrite($fp, 'Date/Heure;Niveau;Script;Login;Password;Adresse IP;Action SOAP;Ligne;Fichier;Fonction;Classe;Domaine;POST DATA;Memory;Message'.EOL);
|
||||
} else
|
||||
$fp=@fopen(LOG_PATH.'/debug.log', 'a');
|
||||
@fwrite($fp, date('Y/m/d-H:i:s') .';'. $debugLevel .';'. $_SERVER['PHP_SELF'] .';'. $_SERVER['PHP_AUTH_USER'] .';'. $_SERVER['PHP_AUTH_PW'] .';'.
|
||||
$_SERVER['REMOTE_ADDR'] .';'. $_SERVER['HTTP_SOAPACTION'] .';'.$line.';'. $file.';'. $function.';'. $class .';'.
|
||||
@gethostbyaddr($_SERVER['REMOTE_ADDR']) .';'. $HTTP_RAW_POST_DATA .';'. @memory_get_usage().';'. $message . EOL);
|
||||
@fclose($fp);
|
||||
if ($debugLevel=='E'){
|
||||
if (!file_exists(LOG_PATH.'/debugError.log')) {
|
||||
$fp=@fopen(LOG_PATH.'/debugError.log', 'a');
|
||||
@fwrite($fp, 'Date/Heure;Niveau;Script;Login;Password;Adresse IP;Action SOAP;Ligne;Fichier;Fonction;Classe;Domaine;POST DATA;Message'.EOL);
|
||||
} else
|
||||
$fp=fopen(LOG_PATH.'/debugError.log', 'a');
|
||||
@fwrite($fp, date('Y/m/d-H:i:s') .';'. $debugLevel .';'. $_SERVER['PHP_SELF'] .';'. $_SERVER['PHP_AUTH_USER'] .';'. $_SERVER['PHP_AUTH_PW'] .';'.
|
||||
$_SERVER['REMOTE_ADDR'] .';'. $_SERVER['HTTP_SOAPACTION'] .';'.$line.';'. $file.';'. $function.';'. $class .';'.
|
||||
@gethostbyaddr($_SERVER['REMOTE_ADDR']) .';'. $HTTP_RAW_POST_DATA .';'. @memory_get_usage().';'. $message . EOL);
|
||||
@fclose($fp);
|
||||
//die($message);
|
||||
}
|
||||
}
|
||||
|
||||
function prepareString($str) {
|
||||
$tabReplace = array(
|
||||
'œ' => "oe",
|
||||
''.chr(160) => '',
|
||||
);
|
||||
|
||||
$str = utf8_decode($str);
|
||||
$str = strtr($str,$tabReplace);
|
||||
return utf8_encode($str);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
** Déplacement d'un fichier. Retourne false en cas d'erreur.
|
||||
**
|
||||
** @param string $from
|
||||
** @param string $to
|
||||
** @return bool
|
||||
**/
|
||||
function move($from, $to) {
|
||||
return (copy($from, $to) and unlink($from));
|
||||
}
|
||||
|
||||
/** Converti une IP en nombre
|
||||
**
|
||||
** @param string $ip Adresse IP
|
||||
** @return integer
|
||||
**/
|
||||
function getIpNumber($ip) {
|
||||
$tab=explode('.', $ip);
|
||||
return (($tab[0]*256*256*256) + ($tab[1]*256*256) + ($tab[2]*256) + ($tab[3]));
|
||||
}
|
||||
|
||||
/** Vérifie si une IP est dans une plage du type 192.168.3.1-192.168.3.10
|
||||
**
|
||||
** @param string $plage_1 Plage IP de début
|
||||
** @param string $plage_2 Plage IP de fin
|
||||
** @param string $ip Adresse IP à tester
|
||||
** @return boolean
|
||||
**/
|
||||
function in_plage($plage_1,$plage_2,$ip){
|
||||
$ip2=getIpNumber($ip);
|
||||
if ($ip2>=getIpNumber($plage_1) && $ip2<=getIpNumber($plage_2))
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
/** Controle si une adresse IP est dans une liste des IP communiquées sous la forme 192.168.3.5-192.68.3.10;192.168.3.*;192.168.3.10
|
||||
**
|
||||
** @param string $strPlageIP La plage d'adresses IP
|
||||
** @param string $adresseIP L'adresse IP à tester
|
||||
** @return boolean
|
||||
**/
|
||||
function checkPlagesIp($strPlageIP, $adresseIP) {
|
||||
$connected=false;
|
||||
$tabIpAllowed=explode(';', trim($strPlageIP));
|
||||
if (count($tabIpAllowed)==1 && $tabIpAllowed[0]=='')
|
||||
$tabIpAllowed=array();
|
||||
|
||||
foreach ($tabIpAllowed as $ip) {
|
||||
$tabPlages=explode('-', $ip);
|
||||
// C'est une plage d'adresse '-'
|
||||
if (isset($tabPlages[1]))
|
||||
$connected=in_plage($tabPlages[0],$tabPlages[1],$adresseIP);
|
||||
else {
|
||||
// C'est une adresse avec ou sans masque '*'
|
||||
if (preg_match('/^'.str_replace('*','.*',str_replace('.','\.',$ip)).'$/', $adresseIP) )
|
||||
$connected=true;
|
||||
}
|
||||
if ($connected) break;
|
||||
}
|
||||
if (count($tabIpAllowed)==0) return false;
|
||||
elseif (!$connected) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
|
Loading…
Reference in New Issue
Block a user