production/Controleur/ControleurAjaxlogconnexion.php
2025-12-02 11:29:44 +00:00

107 lines
3.3 KiB
PHP
Executable File

<?php
require_once 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
require_once 'Framework/Controleurrequete.php';
require_once 'Modele/Logconnexion.php';
class ControleurAjaxlogconnexion extends Controleurrequete
{
private $logconnexion;
public function __construct() {
$this->logconnexion = new Logconnexion();
}
public function index()
{
$login = $this->requete->getParametreFormulaire("login");
$ipConnexion = $this->requete->getParametreFormulaire("ipConnexion");
$debut = $this->requete->getParametreDate("debut");
$fin = $this->requete->getParametreDate("fin");
$logconnexions = $this->logconnexion->getlogconnexion($login, $ipConnexion, $debut, $fin);
$cumullogconnexions = $this->logconnexion->getlogconnexioncumul($login, $ipConnexion, $debut, $fin);
$this->genererVueAjax(array('logconnexions' => $logconnexions, 'cumullogconnexions' => $cumullogconnexions));
}
public function exporterlogconnexion()
{
$login = $this->requete->getParametreFormulaire("login");
$ipConnexion = $this->requete->getParametreFormulaire("ipConnexion");
$debut = $this->requete->getParametreDate("debut");
$fin = $this->requete->getParametreDate("fin");
$logconnexions = $this->logconnexion->getlogconnexionexport($login, $ipConnexion, $debut, $fin);
// Excel
$headerXLS = array
(
_('Login'),
_('Utilisateur'),
_('Entité'),
_('Date'),
_('IP'),
_('Succès'),
_('Application')
);
$dataXLS = array();
foreach ($logconnexions as $logconnexion)
{
$dataXLS[]=$logconnexion;
}
$classeur = new Spreadsheet();
$classeur->getProperties()->setCreator("INTER-SANTE");
$classeur->setActiveSheetIndex(0);
$feuille=$classeur->getActiveSheet();
$feuille->setTitle(_('LOGS CONNEXION'));
$feuille->setCellValue('A1', convertirc(_("LOGS CONNEXION")));
$feuille->mergeCells('A1:E1');
$feuille->setCellValue('A2', convertirc(_("Login")." : " . $login));
$feuille->mergeCells('A2:E2');
$feuille->setCellValue('A3', convertirc(_("IP")." : " . $ipConnexion));
$feuille->mergeCells('A3:E3');
$feuille->setCellValue('A4', convertirc(_("PERIODE")." : " . dateLang($debut) . " <==> " . dateLang($fin)));
$feuille->mergeCells('A4:E4');
$feuille->fromArray($headerXLS, NULL, 'A6', true);
$feuille->fromArray($dataXLS, NULL, 'A7', true);
//Forcer le téléchargement vers le navigateur;
$fichier = 'Temp/TMP_LOGS_CONNEXION'."_".uniqid().".xlsx";
$writer = new Xlsx($classeur);
$writer->save($fichier);
$t_html =' <div id ="div_export_a" class="alert alert-info"> ';
$t_html .=' <a style="font-size:15pt;" href="'.$fichier.'" target="_blank" > '._("TELECHARGER").' </a> ';
$t_html .=' </div ';
echo $t_html;
exit();
}
function getcoordonneesgeoip(){
$ip = $this->requete->getParametreFormulaire('ipConnexion');
//connection au serveur de ip-api.com et recuperation des données
$query = unserialize(file_get_contents('http://ip-api.com/php/'.$ip));
if($query && $query['status'] == 'success')
{
echo $query['lat']."/".$query['lon'];
}else{
echo 'false';
}
}
}