44 lines
1.9 KiB
PHP
44 lines
1.9 KiB
PHP
<?php
|
|
//************************************************************************************************************
|
|
// bateau_etat.php - État léger d'un bateau, interrogé toutes les 30 s par la page "Données du bateau" pour détecter
|
|
// l'arrivée d'une nouvelle archive (synthèse §50). Réponse JSON : {"date": "<date UTC de la dernière archive traitée,
|
|
// ISO 8601>"} ou {"date": null}. Mêmes droits que la page du bateau : administrateur, ou accès actif à ce bateau.
|
|
//************************************************************************************************************
|
|
// Réponse JSON : aucun avertissement PHP ne doit s'y écrire (il la rendrait illisible) - ils vont dans le journal.
|
|
ini_set('display_errors', '0');
|
|
require_once("../config/config.php");
|
|
Init_session(basename(__FILE__));
|
|
|
|
header('Content-Type: application/json; charset=UTF-8');
|
|
header('Cache-Control: no-store');
|
|
|
|
if (empty($_SESSION['acces_valide']))
|
|
{
|
|
http_response_code(401);
|
|
echo '{}';
|
|
exit();
|
|
}
|
|
|
|
$id_bateau = isset($_GET['id']) ? (int)$_GET['id'] : 0;
|
|
$niveau_admin = NIVEAU_ACCES_MINI_ADMINISTRATEUR;
|
|
$est_administrateur = ((int)$_SESSION['shipmember']['Niveau_acces'] >= $niveau_admin) ? 1 : 0;
|
|
|
|
Ouverture_bdd();
|
|
$reponse = Requete_preparee_bdd("SELECT B.Date_derniere_maj FROM TB_Bateaux B
|
|
WHERE B.Cle_primaire=? AND B.Validite=1
|
|
AND (? = 1 OR EXISTS (SELECT 1 FROM TB_Lien_bateau_shipmember L
|
|
WHERE L.ID_Bateau=B.Cle_primaire AND L.ID_Shipmember=? AND L.Statut='actif' AND L.Fin_validite >= NOW()))",
|
|
array(array('i', $id_bateau), array('i', $est_administrateur), array('i', $_SESSION['shipmember']['Cle_primaire'])),
|
|
__FILE__, __LINE__);
|
|
$donnees = Recherche_ligne_bdd($reponse, MYSQLI_ASSOC);
|
|
Liberation_jeu_de_resultat_bdd($reponse);
|
|
Fermeture_bdd();
|
|
|
|
if (!$donnees)
|
|
{
|
|
http_response_code(403);
|
|
echo '{}';
|
|
exit();
|
|
}
|
|
echo json_encode(array('date' => $donnees['Date_derniere_maj']), JSON_INVALID_UTF8_SUBSTITUTE);
|