Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 1647 → Rev 1648

/trunk/jrest/services/CoelStructure.php
163,51 → 163,56
public function createElement($params) {
// Identification de l'utilisateur
list($id_utilisateur, $id_session) = $this->getIdentification($params);
 
// Contrôle du non détournement de l'utilisateur
if ($this->etreAutorise($id_utilisateur)) {
try {
// Vérification des tables à vraiment mettre à jour en fonction des données passées.
$tables_a_modifier = $this->recupererTablesAModifier($params);
reset($tables_a_modifier);
if (!$this->etreAutorise($id_utilisateur)) {
$this->envoyer();
return;
}
try {
// Vérification des tables à vraiment mettre à jour en fonction des données passées.
$tables_a_modifier = $this->recupererTablesAModifier($params);
reset($tables_a_modifier);
$id_structure = null;
while (list($table_id, $table) = each($tables_a_modifier)) {
if (!is_null($table['champs'])) {
if (!$this->avoirCleComplete($table)) {
// Ajout des données à la table des données
$id_structure = $this->ajouter($table);
if ($id_structure !== false) {
$table['champs_valeurs_id']['cs_id_structure'] = $id_structure;
$table['champs_valeurs_brut']['cs_id_structure'] = $id_structure;
$tables_a_modifier[122]['champs_valeurs_id']['csc_id_structure'] = $id_structure;
$tables_a_modifier[122]['champs_valeurs_brut']['csc_id_structure'] = $id_structure;
$tables_a_modifier[122]['champs_valeurs_protege']['csc_id_structure'] = $this->bdd->quote($id_structure);
$tables_a_modifier[123]['champs_valeurs_id']['csv_id_structure'] = $id_structure;
$tables_a_modifier[123]['champs_valeurs_brut']['csv_id_structure'] = $id_structure;
$tables_a_modifier[123]['champs_valeurs_protege']['csv_id_structure'] = $this->bdd->quote($id_structure);
$id_structure = null;
while (list($table_id, $table) = each($tables_a_modifier)) {
if (is_null($table['champs'])) continue;
if ($this->avoirCleComplete($table)) {
$this->mettreAJourAvecCle($id_utilisateur, $id_session, $table_id, $table);
continue;
}
 
// Ajout des données à la table des données
$id_structure = $this->ajouter($table);
if ($id_structure === false) continue;
 
$table['champs_valeurs_id']['cs_id_structure'] = $id_structure;
$table['champs_valeurs_brut']['cs_id_structure'] = $id_structure;
$tables_a_modifier[122]['champs_valeurs_id']['csc_id_structure'] = $id_structure;
$tables_a_modifier[122]['champs_valeurs_brut']['csc_id_structure'] = $id_structure;
$tables_a_modifier[122]['champs_valeurs_protege']['csc_id_structure'] = $this->bdd->quote($id_structure);
$tables_a_modifier[123]['champs_valeurs_id']['csv_id_structure'] = $id_structure;
$tables_a_modifier[123]['champs_valeurs_brut']['csv_id_structure'] = $id_structure;
$tables_a_modifier[123]['champs_valeurs_protege']['csv_id_structure'] = $this->bdd->quote($id_structure);
// Historisation (Ajout des méta-données)
$etat = 1; // Ajout
$cle = $this->recupererCle($table);
$info = $this->creerXmlHisto($table['champs_valeurs_brut']);
$id_meta = $this->historiser($table_id, $cle, $info, $id_utilisateur, $etat, $id_session);
// Historisation (Ajout des méta-données)
$etat = 1; // Ajout
$cle = $this->recupererCle($table);
$info = $this->creerXmlHisto($table['champs_valeurs_brut']);
$id_meta = $this->historiser($table_id, $cle, $info, $id_utilisateur, $etat, $id_session);
// Liaison de la table des données à ses méta-données
$champ_meta = "{$table['prefixe']}_ce_meta";
$table['champs_valeurs_protege'] = array($champ_meta => $id_meta);
$this->modifier($table);
}
} else {
$this->mettreAJourAvecCle($id_utilisateur, $id_session, $table_id, $table);
}
}
}
// Liaison de la table des données à ses méta-données
$champ_meta = "{$table['prefixe']}_ce_meta";
$table['champs_valeurs_protege'] = array($champ_meta => $id_meta);
$this->modifier($table);
}
 
if(isset($params['cpr_abreviation']) && !empty($params['cpr_abreviation'])) {
$this->ajouterGuid($params['cpr_abreviation'], $id_structure);
} catch (PDOException $e) {
$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
}
}
} catch (PDOException $e) {
$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
}
$this->envoyer($id_structure);
}
219,24 → 224,27
// Vérification de la présence des id passés par l'url
if (!isset($uid[0])) {
$this->messages[] = "Identifiant de structure manquant. Vous ne devriez pas avoir accès à ce service.";
} else {
// Identification de l'utilisateur
list($id_utilisateur, $id_session) = $this->getIdentification($params);
// Contrôle du non détournement de l'utilisateur
if ($this->etreAutorise($id_utilisateur)) {
try {
// Vérification des tables à vraiment mettre à jour en fonction des données passées.
$tables_a_modifier = $this->recupererTablesAModifier($params);
$this->envoyer();
return;
}
 
// Identification de l'utilisateur
list($id_utilisateur, $id_session) = $this->getIdentification($params);
// Contrôle du non détournement de l'utilisateur
if (!$this->etreAutorise($id_utilisateur)) {
$this->envoyer();
return;
}
try {
// Vérification des tables à vraiment mettre à jour en fonction des données passées.
$tables_a_modifier = $this->recupererTablesAModifier($params);
// Pour chaque table du module nous lançons si nécessaire l'historisation puis la mise à jour
foreach ($tables_a_modifier as $table_id => $table) {
$this->mettreAJourAvecCle($id_utilisateur, $id_session, $table_id, $table);
}
} catch (PDOException $e) {
$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
}
}
// Pour chaque table du module nous lançons si nécessaire l'historisation puis la mise à jour
foreach ($tables_a_modifier as $table_id => $table) {
$this->mettreAJourAvecCle($id_utilisateur, $id_session, $table_id, $table);
}
} catch (PDOException $e) {
$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
}
// Envoie sur la sortie standard