Subversion Repositories eFlore/Applications.cel

Rev

Rev 2072 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2072 jpm 1
<?php
2
/**
3
* @category  PHP
4
* @package   jrest
5
* @author    Jean-Pascal MILCENT <jpm@tela-botania.org>
6
* @copyright 2014 Tela-Botanica
7
* @license   Licence CECILL <http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt>
8
* @license	 GPL v3 <http://www.gnu.org/licenses/gpl.txt>
9
*
10
*/
11
class CelSuppressionImage extends Cel {
12
 
13
	/**
14
	 * Méthode appelée avec une requête de type DELETE.
15
	 * Supprime les infos sur l'image et le fichier correspondant à l'ordre passé en parametre
16
	 * Supporte la suppression multiple en passant plusieurs numéros séparés par des virgules
17
	 *
18
	 * @param int uid[0] id utilisateur
19
	 * @param string uid[1] : ordre(s) image(s) obligatoire(s) séparés par des virgules
20
	 *
21
	 */
22
	public function deleteElement($uid){
23
		if ($this->controlerAccessibiliteWs()) {
24
			if ($this->controleAppelIpAutorisee()) {
25
				// Initialisation des paramètres
26
				$idImage = isset($uid[0]) ? $uid[0] : '';
27
 
28
				// Vérifier les paramêtres
29
				$this->verifierIdentifiantImage($idImage);
30
				$idsImages = explode(',', $idImage);
31
 
32
				$gestionnaireImage = new GestionImage($this->config);
33
				$suppressionImage = $gestionnaireImage->supprimerImage($idsImages);
34
 
35
				if ($suppressionImage) {
36
					$this->envoyer('OK');
37
				} else {
38
					$this->envoyer("L'image « $idImage » n'a pas pu être supprimé.");
39
				}
40
			} else {
41
				header('Status: 401 Unauthorized');
42
				$message = "Accès interdit. \n"."Vous n'êtes pas autorisé à accéder à ce service depuis '{$_SERVER['REMOTE_ADDR']}' !\n";
43
				die($message);
44
			}
45
		}
46
	}
47
 
48
	public function controlerAccessibiliteWs() {
49
		if (self::ARRET_SERVICE) {
50
			header('Status: 503 Service Temporarily Unavailable');
51
			die("La suppression d'images du CEL est temporairement désactivée.");
52
		}
53
		return true;
54
	}
55
 
56
	private function verifierIdentifiantImage($chaine) {
57
		$ok = preg_match('/^(?:[0-9]+,)*[0-9]+$/', $chaine);
58
		if ($ok == false) {
59
			header("HTTP/1.0 412 Precondition Failed"); // TODO: PHP: 5.4 http_response_code(412);
60
			header("Content-Type: text/plain; charset=utf-8");
61
			die("Indiquer un ou plusieurs identifiants d'image séparés par des virgules.");
62
		}
63
		return $ok;
64
	}
65
}
66
?>