Rev 2121 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/*** @category PHP* @package jrest* @author Aurélien PERONNET <aurelien@tela-botania.org>* @author Jean-Pascal MILCENT <jpm@tela-botania.org>* @copyright 2014 Tela-Botanica* @license Licence CECILL <http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt>* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>**/class CelSuppressionObservation extends Cel {/*** Méthode appelée avec une requête de type DELETE.* Dépublie l'obs correspondant à l'id passé en parametre (dans le futur une suppression sera possible)* Supporte l'appel multiple en passant plusieurs numéros séparés par des virgules** @param string uid[0] : id(s) observation(s) obligatoire(s) séparés par des virgules**/public function deleteElement($uid){if ($this->controlerAccessibiliteWs()) {if ($this->controleAppelIpAutorisee()) {// Initialisation des paramètres$idObs = isset($uid[0]) ? $uid[0] : '';// Vérifier les paramètres$this->verifierIdentifiantObs($idObs);$idObs = explode(',', $idObs);$gestionnaireObs = new GestionObservation($this->config);// par défaut on ne fait que dépublier les obs à moins que la suppression ne soit demandée// expréssement par le paramètre modeif(isset($_GET['mode']) && $_GET['mode'] == "supprimer") {// TODO: suppression réelle des obs par ce mode, et réorganiser le code de suppression// des obs à travers tous les web services et dans gestion observationheader('HTTP/1.0 501 Not Implemented');die("La suppression réelle des observations n'est pas encore implémentée.");} else {$detransmissionObs = $gestionnaireObs->modifierTransmissionObservation($idObs, false);}if ($detransmissionObs) {$this->envoyer('OK');} else {$this->envoyer("Les observations n'ont pas pu être dépubliées.");}} else {header('Status: 401 Unauthorized');$message = "Accès interdit. \n"."Vous n'êtes pas autorisé à accéder à ce service depuis '{$_SERVER['REMOTE_ADDR']}' !\n";die($message);}}}public function controlerAccessibiliteWs() {if (self::ARRET_SERVICE) {header('Status: 503 Service Temporarily Unavailable');die("La suppression d'images du CEL est temporairement désactivée.");}return true;}private function verifierIdentifiantObs($chaine) {$ok = preg_match('/^(?:[0-9]+,)*[0-9]+$/', $chaine);if ($ok == false) {header("HTTP/1.0 412 Precondition Failed"); // TODO: PHP: 5.4 http_response_code(412);header("Content-Type: text/plain; charset=utf-8");die("Indiquer un ou plusieurs identifiants d'obs séparés par des virgules.");}return $ok;}}?>