alpha_full/admin/avancement/ctrlAvcement.php
2026-04-06 22:58:51 +02:00

111 lines
5.9 KiB
PHP
Executable File

<?php
$nomFicAppelant = basename(__FILE__);
// -----------------------------------------------------
// Cartouche
// -----------------------------------------------------
// Auteur : eric
// datemaj : 27/11/2021
// fonction : Controler que les API sont en prod quand le site est publiable
// page factorisée pour avoir qu'une seule fois le code
// erreur= 0 => pas d'erreur
// erreur= 1 => env de test -> on va forcer env de prod
// erreur= 2 => manque clés : erreur bloquante
// les erreurs sont gérées dans l'appellant
// -----------------------------------------------------
// Fichier appelé soit par mise en maintenance (maint.chapeau), soit par publier (exportVerif.php), soit par avancement.messages.modale.php
// Controle des clés API ou login pour environnement de prod
$ctrlMsg='<ul>';
$resConn='';
$toutOk=1;
$resConn='';
$tabResult=array();
$erreurSQL=0;
// -----------------------------------------------------
// Vérifier que les cles API de Prod des moyens de paiement existent : sauf cheque et virement bancaire
// Ici on refait un test pour savoir si les API de paiement ne sont passées en mode test sur l'environnement de production
// Si c'est le cas on fera un update pour que les API sopient toujours en prod sur prod.
// -----------------------------------------------------
// Vérifier les moyens de paiement : sauf cheque et virement bancaire
// -----------------------------------------------------
$reqSelect ="SELECT idModePaie, description, PublicKeyProd, PublicKeyProd, PrivateKeyProd, PrivateKeyProd FROM modepaie WHERE activ=1;";
if (isset($debug[2]) && $debug[2] == '1' ) { $debugMsg .= monDebug (2,['reqSelect' => $reqSelect ], 'ctlAvancement.php');}
$resConn=$idPdo->query($reqSelect);
if ($resConn) {
while ($tabResult = $resConn->fetch(PDO::FETCH_ASSOC)) {
if ($tabResult['idModePaie']!='2' && $tabResult['idModePaie']!='3') {
$description=$tabResult['description'];
if (empty($tabResult['PublicKeyProd']) || $tabResult['PublicKeyProd']=="") {
$toutOk=0; $admMsgClass='ko';
$ctrlMsg .= '<li><i class="fad fa-exclamation-triangle" style="color:red;"></i>' .$description. ' n\'a pas de clé Privée pour la production. Veuillez <a style="color:blue; text-decoration:underline" target="_parent" href="./frmAdmin.php?affAdmin=6&optAff=1">renseigner votre clé Privée de production</a>, puis publier les options pour une prise en compte sur le site public.</li>';
}
if (empty($tabResult['PrivateKeyProd']) || $tabResult['PrivateKeyProd']=="") {
$toutOk=0; $admMsgClass='ko';
$ctrlMsg .= '<li><i class="fad fa-exclamation-triangle" style="color:red;"></i>' .$description. ' n\'a pas de clé Publique pour la production. Veuillez <a style="color:blue; text-decoration:underline" target="_parent" href="./frmAdmin.php?affAdmin=6&optAff=1">renseigner votre clé Publique de production</a>, puis publier les options pour une prise en compte sur le site public.</li>';
}
}
}
}
if (isset($debug[1]) && $debug[1] == '1' ) { $debugMsg .= monDebug (1,['tout ok paiement' => $toutOk ], '');}
// -----------------------------------------------------
// Vérifier les modes de livraison
// -----------------------------------------------------
$reqSelect ="SELECT * from modeliv WHERE activ=1;";
if (isset($debug[2]) && $debug[2] == '1' ) { $debugMsg .= monDebug (2,['reqSelect' => $reqSelect ], '');}
$tabResult=array();
$resConn='';
$resConn=$idPdo->query($reqSelect);
if ($resConn) {
while ($tabResult = $resConn->fetch(PDO::FETCH_ASSOC)) {
$description=$tabResult['description'];
// Pas de clé pour drive, emporter, livreur du magasin
if ($tabResult['idModeLiv']!='5' && $tabResult['idModeLiv']!='6' && $tabResult['idModeLiv']!='7' ) {
if ($tabResult['idModeLiv']=='8' ) {
// pour mondial relay : id compte
if ($tabResult['idCompte']=="") {
$toutOk=0; $admMsgClass='ko'; $erreurSQL = 0;
$ctrlMsg .= '<li><i class="fad fa-exclamation-triangle" style="color:red;" ></i>' .$description. ' n\'a pas de clé(s) API. Veuillez <a target="_parent" style="color:blue; text-decoration:underline" href="./frmAdmin.php?affAdmin=6&optAff=2"></a>renseigner le compte, puis publier les options pour une prise en compte sur le site public</li>';
}
}
else {
// pour tous les autres : idCompte + libelleCompte + pwdCompte
if ($tabResult['idCompte']=="" || $tabResult['libelleIdCompte']=="" || $tabResult['pwdCompte']=="") {
$toutOk=0; $admMsgClass='ko'; $erreurSQL = 0;
$ctrlMsg .= '<li><i class="fad fa-exclamation-triangle" style="color:red;" ></i>' .$description. ' n\'est pas correctement renseigné. Veuillez <a target="_parent" style="color:blue; text-decoration:underline" href="./frmAdmin.php?affAdmin=6&optAff=2"></a>renseigner les identifiants, clés ou mots de passe, puis publier les options pour une prise en compte sur le site public.</li>';
}
}
}
}
}
$ctrlMsg .= '</ul>';
if (isset($debug[1]) && $debug[1] == '1' ) { $debugMsg .= monDebug (1,['tout ok livraison' => $toutOk], '');}
if ($toutOk==false) {
// -----------------------------------------------------
// DB PROD
// -----------------------------------------------------
include ($includePathConf. "/prod.dbConnect.php");
// -----------------------------------------------------
// Forcer l'authentifcation en Prod
// -----------------------------------------------------
if (isset($debug[1]) && $debug[1] == '1') { $debugMsg .= monDebug(1, ['$_SESSION[auth]' => $_SESSION['auth'] ], '');}
if ($_SESSION['auth'] == 1) {
$reqUpdate="UPDATE `authTable` set auth=1;";
if (isset($debug[2]) && $debug[2] == '1') { $debugMsg .= monDebug(2, ['reqUpdate ctrlAvancemment' => $reqUpdate], '');}
$resConn=$idPdoProd->query($reqUpdate);
$_SESSION['auth'] = 1;
$isMaintenance=1;
}
}
else {
$admMsgClass="ok";
$ctrlMsg = 'Tout est ok ! <i class="fad fa-thumbs-up txtAvance"></i><span class="admMsgOk">Vous pouvez sortir du mode maintenance.</span>';
}
?>