Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2070 → Rev 2071

/trunk/jrest/services/InventoryImage.php
17,12 → 17,10
* Service recherche et ajout d'image a partir de divers critères
* in=utf8
* out=utf8
*
*
*/
class InventoryImage extends Cel {
const ARRET_SERVICE = false;
 
/**
* Méthode appelée avec une requête de type GET.
* Renvoie les infos sur l'image correspondant à l'id passé en parametre
33,29 → 31,29
{
// Controle detournement utilisateur
$this->controleUtilisateur($uid[0]);
 
if(!isset($uid[0]) || !isset($uid[1])) {
return;
return;
}
 
$chercheur_image = new RechercheImage($this->config);
 
$parametres = array('ordre' => $uid[1]);
 
$retour = null;
$image_recherchee = $chercheur_image->rechercherImages($uid[0], $parametres, 0, 1);
$image_recherchee = $chercheur_image->rechercherImages($uid[0], $parametres, 0, 1);
if(count($image_recherchee) > 0) {
$retour = $image_recherchee[0];
}
$this->envoyerJson($retour);
return true;
 
$this->envoyerJson($retour);
return true;
}
 
/**
* Méthode appelée avec une requête de type POST avec un identifiant d'image.
* Met a jour l'image correspondant à l'id passé en paramètre avec les valeurs passées dans le post
*
*
* @param int $uid[0] identifiant utilisateur
* @param int $uid[1] ordre de l'image relatif à l'utilisateur
* @param pairs array tableau contenant les valeurs de metadonnées à modifier
64,32 → 62,32
{
// Controle detournement utilisateur
$this->controleUtilisateur($uid[0]);
 
if(count($pairs) == 0 || !isset($uid[1])) {
return;
return;
}
 
$gestionnaire_image = new GestionImage($this->config);
$resultat_mise_a_jour = $gestionnaire_image->modifierImage($uid[0],$uid[1],$pairs);
 
$retour = false;
if ($resultat_mise_a_jour) {
$retour = 'OK';
}
 
$this->envoyer($retour);
}
 
/**
* Méthode appelée avec une requête de type PUT.
* Stocke une image, crée ses miniatures et enregistre ses informations
* Renvoie l'identifiant d'image nouvellement crée en cas de succès
*
*
* @param $pairs array tableau contenant les valeurs de metadonnées à ajouter
*/
function createElement($pairs)
{
 
if(self::ARRET_SERVICE) {
header('Status: 503 Service Temporarily Unavailable');
echo "L'envoi d'images au cel est temporairement désactivé";
97,16 → 95,16
}
// Controle detournement utilisateur
$this->controleUtilisateur($pairs['ce_utilisateur']);
 
foreach ($_FILES as $file) {
$infos_fichier = $file ;
}
 
$gestionnaire_image = new GestionImage($this->config);
$id_utilisateur = $pairs['ce_utilisateur'];
 
if ($gestionnaire_image->ajouterImage($id_utilisateur, $infos_fichier)) {
 
// l'upload demande de court-circuiter le fonctionnement normal de JREST
// en quittant directement après l'envoi
$this->envoyerMessageCreationEffectuee();
113,9 → 111,9
exit;
}
}
 
private function envoyerMessageCreationEffectuee() {
 
header('HTTP/1.0 200 Created');
echo 'OK';
exit() ;
125,10 → 123,10
* Méthode appelée avec une requête de type DELETE.
* Supprime les infos sur l'image et le fichier correspondant à l'ordre passé en parametre
* Supporte la suppression multiple en passant plusieurs numéros séparés par des virgules
*
*
* @param int uid[0] id utilisateur
* @param string uid[1] : ordre(s) image(s) obligatoire(s) séparés par des virgules
*
*
*/
function deleteElement($uid){
 
143,7 → 141,7
if (!isset($uid[1]) || !$this->EstUneSuiteIdentifiantsImage($uid[1])) {
return;
}
 
$ids_images = explode(',',$uid[1]);
 
$gestionnaire_image = new GestionImage($this->config);
151,14 → 149,14
 
$this->envoyer('OK');
}
 
private function estUneSuiteIdentifiantsImage($chaine) {
 
// un ensemble d'identifiants est une suite d'identifiants séparés par des virgules
// sans virgule terminale
$reg_exp = "/^(([0-9])+,)*([0-9])+$/";
return preg_match($reg_exp, $chaine);
 
return preg_match($reg_exp, $chaine);
}
}
?>
/trunk/jrest/lib/Cel.php
17,6 → 17,8
require_once('Bdd2.php');
 
abstract class Cel {
const ARRET_SERVICE = false;
 
const TYPE_OBS = 'observation';
const TYPE_IMG = 'image';
 
236,7 → 238,7
 
//+----------------------------------------------------------------------------------------------------------------+
// GESTION DE L'IDENTIFICATION
 
static function getAuthIdentifiant() {
return isset($_SERVER['PHP_AUTH_USER']) ? $_SERVER['PHP_AUTH_USER'] : null;
}
277,7 → 279,7
}
}
}
 
public function controleAppelIpAutorisee() {
$ips_autorisees = explode(',', @$this->config['jrest_admin']['ip_autorisees']);
if(!in_array($_SERVER['REMOTE_ADDR'], $ips_autorisees) && $_SERVER['REMOTE_ADDR'] != $_SERVER['SERVER_ADDR']) {
583,15 → 585,15
}
return ($this->etreNull($valeurs)) ? null : $valeurs;
}
 
protected function obtenirSousTaxonsPourNt($referentiel, $nt) {
return $this->obtenirSousTaxons($referentiel, 'nt:'.$nt);
}
 
protected function obtenirSousTaxonsPourNn($referentiel, $nn) {
return $this->obtenirSousTaxons($referentiel, $nn);
}
 
private function obtenirSousTaxons($referentiel, $requete) {
$sous_taxons = array();
$url_service_taxon = str_replace('{referentiel}', $referentiel, $this->config['eflore']['url_service_taxon']);
602,13 → 604,13
}
return $sous_taxons;
}
 
protected function supprimerVersionDuReferentiel($referentiel) {
$referentiel_parties = explode(':', $referentiel);
$referentiel_parties = explode('_', $referentiel_parties[0]);
return $referentiel_parties[0];
}
 
protected function getUrlEflore($referentiel, $nn) {
$urlEflore = null;
if (! $this->etreNull($nn)) {