57,74 → 57,56 |
$erreurs[] = '- paramètre "auteur.id" manquant ;'; |
} |
|
if (!empty($erreurs)) { |
$e = 'Erreur lors de la configuration : '."\n"; |
$e .= implode("\n", $erreurs); |
throw new Exception($e, RestServeur::HTTP_CODE_ERREUR); |
if ($erreurs) { |
throw new Exception("Erreur lors de la configuration :\n" . implode("\n", $erreurs), |
RestServeur::HTTP_CODE_ERREUR); |
} |
} |
|
|
private function modifierObservationParDetermination($id_proposition, $parametres) { |
$informations_proposition = $this->obtenirInformationDetermination($id_proposition, $parametres['auteur.id']); |
$informations_proposition = self::obtenirInformationDetermination($this->bdd, $id_proposition, $parametres['auteur.id']); |
$id_observation = $informations_proposition['ce_observation']; |
$informations_observation = $this->obtenirInformationsObservation($id_observation); |
// obtenirInformationsObservation() |
$informations_observation = $this->bdd->recuperer(sprintf('SELECT * FROM del_observation WHERE id_observation = %d', |
intval($id_observation))); |
$est_autorise = $this->comparerAuteurObservationUtilisateurIdentifie($informations_observation['ce_utilisateur']); |
if(! $est_autorise) { |
throw new Exception("Seul l'utilisateur ayant saisi l'observation peut la valider : veuillez vous identifier.\n", |
RestServeur::HTTP_CODE_ERREUR); |
return; |
} |
|
$informations_proposition['ce_utilisateur'] = $informations_observation['ce_utilisateur']; |
|
$est_autorise = $this->comparerAuteurObservationUtilisateurIdentifie($informations_observation); |
if($est_autorise) { |
$succes_modification = $this->envoyerRequeteModificationObservation($id_observation, $informations_proposition); |
} else { |
$e = 'Seul l\'utilisateur ayant saisi l\'observation peut la valider : veuillez vous identifier.'."\n"; |
throw new Exception($e, RestServeur::HTTP_CODE_ERREUR); |
exit; |
} |
|
return $succes_modification; |
return $this->envoyerRequeteModificationObservation($id_observation, $informations_proposition); |
} |
|
private function comparerAuteurObservationUtilisateurIdentifie($informations_observation) { |
private function comparerAuteurObservationUtilisateurIdentifie($ce_utilisateur) { |
$controle_utilisateur = new ControleAcces($this->conteneur); |
$utilisateur_connecte = $controle_utilisateur->getInfosUtilisateurConnecte(); |
$id_utilisateur_auteur_obs = $informations_observation['ce_utilisateur']; |
return $id_utilisateur_auteur_obs == $utilisateur_connecte['id_utilisateur']; |
return $ce_utilisateur == $utilisateur_connecte['id_utilisateur']; |
} |
|
private function obtenirInformationDetermination($id_proposition, $id_utilisateur) { |
$requete = "SELECT * FROM del_commentaire WHERE id_commentaire = ".$this->bdd->proteger($id_proposition)." "; |
|
// pourrait servir de manière commune |
static function obtenirInformationDetermination($db, $id_proposition, $id_utilisateur) { |
$requete = "SELECT * FROM del_commentaire WHERE id_commentaire = ". intval($id_proposition)." "; |
if($id_utilisateur != 0 && $id_utilisateur != '') { |
$requete .= "AND ce_utilisateur = ".$this->bdd->proteger($id_utilisateur); |
$requete .= "AND ce_utilisateur = ".$db->proteger($id_utilisateur); |
} |
$infos_proposition = $this->bdd->recuperer($requete); |
|
return $infos_proposition; |
// TODO: else { LIMIT 1 ? } |
return $db->recuperer($requete); |
} |
|
private function obtenirInformationsObservation($id_observation) { |
$requete = "SELECT * FROM del_observation WHERE id_observation = ".$this->bdd->proteger($id_observation)." "; |
$infos_observation = $this->bdd->recuperer($requete); |
|
return $infos_observation; |
} |
|
private function envoyerRequeteModificationObservation($id_observation, $parametres) { |
$url_requete = $this->conteneur->getParametre('url_service_validation_base'); |
$url_requete = $url_requete.$id_observation; |
$url_requete = $this->conteneur->getParametre('url_service_validation_base') . $id_observation; |
$requeteur = $this->conteneur->getRestClient(); |
$parametres['id_observation'] = $id_observation; |
$parametres_formates = $this->formaterParametresRequeteModificationObservation($parametres); |
$succes = $requeteur->modifier($url_requete, $parametres_formates); |
return $succes; |
$parametres_formates = array('id_observation' => $id_observation, |
'ce_utilisateur' => $parametres['ce_utilisateur'], |
'nom_sel' => $parametres['nom_sel'], |
'nom_sel_nn' => $parametres['nom_sel_nn'], |
'nom_ret' => $parametres['nom_ret'], |
'nom_ret_nn' => $parametres['nom_ret_nn'], |
'nom_referentiel' => $parametres['nom_referentiel']); |
return $requeteur->modifier($url_requete, $parametres_formates); |
} |
|
private function formaterParametresRequeteModificationObservation($parametres) { |
return array('id_observation' => $parametres['id_observation'], |
'ce_utilisateur' => $parametres['ce_utilisateur'], |
'nom_sel' => $parametres['nom_sel'], |
'nom_sel_nn' => $parametres['nom_sel_nn'], |
'nom_ret' => $parametres['nom_ret'], |
'nom_ret_nn' => $parametres['nom_ret_nn'], |
'nom_referentiel' => $parametres['nom_referentiel']); |
} |
} |
?> |