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 |