| Line 21... |
Line 21... |
| 21 |
private $gestionBdd;
|
21 |
private $gestionBdd;
|
| 22 |
private $bdd;
|
22 |
private $bdd;
|
| 23 |
private $idObs = null;
|
23 |
private $idObs = null;
|
| 24 |
private $idProposition = null;
|
24 |
private $idProposition = null;
|
| 25 |
private $idAuteurObs = null;
|
25 |
private $idAuteurObs = null;
|
| - |
|
26 |
private $idValidateurObs = null;
|
| Line 26... |
Line 27... |
| 26 |
|
27 |
|
| 27 |
public function __construct(Conteneur $conteneur = null) {
|
28 |
public function __construct(Conteneur $conteneur = null) {
|
| 28 |
$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur;
|
29 |
$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur;
|
| 29 |
$this->conteneur->chargerConfiguration('config_determinations.ini');
|
30 |
$this->conteneur->chargerConfiguration('config_determinations.ini');
|
| Line 32... |
Line 33... |
| 32 |
}
|
33 |
}
|
| Line 33... |
Line 34... |
| 33 |
|
34 |
|
| 34 |
public function modifier($ressources, $parametres) {
|
35 |
public function modifier($ressources, $parametres) {
|
| 35 |
$this->verifierParametres($ressources, $parametres);
|
36 |
$this->verifierParametres($ressources, $parametres);
|
| - |
|
37 |
$this->idProposition = $ressources[1];
|
| 36 |
$this->idProposition = $ressources[1];
|
38 |
$this->idValidateurObs = $this->validateurEstPresent($parametres) ? $parametres['validateur.id'] : $parametres['auteur.id'] ;
|
| Line 37... |
Line 39... |
| 37 |
$retourCel = $this->modifierObservationParDetermination();
|
39 |
$retourCel = $this->modifierObservationParDetermination();
|
| 38 |
|
40 |
|
| 39 |
if (preg_match('/^(OK|Not Modified)$/i', $retourCel) == false) {
|
41 |
if (preg_match('/^(OK|Not Modified)$/i', $retourCel) == false) {
|
| 40 |
$msg = "Erreur: le web service du CEL a retourné : $e";
|
42 |
$msg = "Erreur: le web service du CEL a retourné : $e";
|
| 41 |
$code = RestServeur::HTTP_CODE_ERREUR;
|
43 |
$code = RestServeur::HTTP_CODE_ERREUR;
|
| 42 |
throw new Exception($msg, $code);
|
44 |
throw new Exception($msg, $code);
|
| 43 |
}
|
45 |
}
|
| - |
|
46 |
return 'OK';
|
| - |
|
47 |
}
|
| - |
|
48 |
|
| - |
|
49 |
private function validateurEstPresent($parametres) {
|
| Line 44... |
Line 50... |
| 44 |
return 'OK';
|
50 |
return isset($parametres['validateur.id']) && is_numeric($parametres['validateur.id']) && $parametres['validateur.id'] != 0;
|
| 45 |
}
|
51 |
}
|
| 46 |
|
52 |
|
| 47 |
private function verifierParametres($ressources, $parametres) {
|
53 |
private function verifierParametres($ressources, $parametres) {
|
| 48 |
$erreurs = array();
|
54 |
$erreurs = array();
|
| Line 49... |
Line 55... |
| 49 |
if (!is_numeric($ressources[1])) {
|
55 |
if (!is_numeric($ressources[1])) {
|
| 50 |
$erreurs[] = '- la ressource indiquant l\'identifiant de la proposition doit être numérique';
|
56 |
$erreurs[] = '- la ressource indiquant l\'identifiant de la proposition doit être numérique';
|
| 51 |
}
|
57 |
}
|
| 52 |
|
58 |
|
| 53 |
//Le paramètre auteur.id (id de l'auteur de la détermination)
|
59 |
// Le paramètre auteur.id (id de l'auteur de la détermination)
|
| - |
|
60 |
// est là pour éviter que le $_POST ne soit vide
|
| - |
|
61 |
if (!isset($parametres['auteur.id'])) {
|
| - |
|
62 |
$erreurs[] = "- le paramètre 'auteur.id' est manquant";
|
| - |
|
63 |
}
|
| - |
|
64 |
|
| - |
|
65 |
// Le paramètre validateur.id (id de la personne validant la détemrinatiuon)
|
| Line 54... |
Line 66... |
| 54 |
// est là pour éviter que le $_POST ne soit vide
|
66 |
// est là pour éviter que le $_POST ne soit vide
|
| 55 |
if (!isset($parametres['auteur.id'])) {
|
67 |
if (isset($parametres['validateur.id']) && !is_numeric($parametres['validateur.id'])) {
|
| 56 |
$erreurs[] = "- le paramètre 'auteur.id' est manquant";
|
68 |
$erreurs[] = "- le paramètre 'validateur.id' doit être un entier";
|
| 57 |
}
|
69 |
}
|
| Line 74... |
Line 86... |
| 74 |
$this->idObs = $propositionInfos['ce_observation'];
|
86 |
$this->idObs = $propositionInfos['ce_observation'];
|
| 75 |
$this->idAuteurObs = $this->getIdAuteurObs();
|
87 |
$this->idAuteurObs = $this->getIdAuteurObs();
|
| 76 |
$this->verifierDroitUtilisateur();
|
88 |
$this->verifierDroitUtilisateur();
|
| Line 77... |
Line 89... |
| 77 |
|
89 |
|
| 78 |
$parametres = array(
|
90 |
$parametres = array(
|
| 79 |
'id_observation' => $this->idObs,
|
91 |
'id_observation' => $this->idObs,
|
| 80 |
'nom_sel_nn' => $propositionInfos['nom_sel_nn'],
|
92 |
'nom_sel_nn' => $propositionInfos['nom_sel_nn'],
|
| 81 |
'nom_referentiel' => $propositionInfos['nom_referentiel'],
|
93 |
'nom_referentiel' => $propositionInfos['nom_referentiel']
|
| Line 82... |
Line 94... |
| 82 |
'id_utilisateur' => $this->idAuteurObs);
|
94 |
);
|
| 83 |
|
95 |
|
| 84 |
$urlBase = $this->conteneur->getParametre('urlServiceCelObs');
|
96 |
$urlBase = $this->conteneur->getParametre('urlServiceCelObs');
|
| Line 117... |
Line 129... |
| 117 |
|
129 |
|
| 118 |
private function verifierDroitUtilisateur() {
|
130 |
private function verifierDroitUtilisateur() {
|
| 119 |
$controleAcces = $this->conteneur->getControleAcces();
|
131 |
$controleAcces = $this->conteneur->getControleAcces();
|
| 120 |
$utilisateurInfos = $controleAcces->getInfosUtilisateurConnecte();
|
132 |
$utilisateurInfos = $controleAcces->getInfosUtilisateurConnecte();
|
| 121 |
$utilisateurId = $utilisateurInfos['id_utilisateur'];
|
133 |
$utilisateurId = $utilisateurInfos['id_utilisateur'];
|
| - |
|
134 |
|
| 122 |
|
135 |
// si l'utilisateur connecté n'est ni auteur de l'observation, ni au moins administrateur de niveau 1
|
| 123 |
if ($this->idAuteurObs != $utilisateurId) {
|
136 |
if (($this->idAuteurObs != $utilisateurId) && $utilisateurInfos['admin'] < 1) {
|
| 124 |
$msg = "Seul l'utilisateur ayant saisi l'observation peut la valider : veuillez vous identifier.\n";
|
137 |
$msg = "Seul l'utilisateur ayant saisi l'observation, un administrateur ou un validateur peut la valider : veuillez vous identifier.\n";
|
| 125 |
throw new Exception($msg, RestServeur::HTTP_CODE_ERREUR);
|
138 |
throw new Exception($msg, RestServeur::HTTP_CODE_ERREUR);
|
| 126 |
}
|
139 |
}
|
| Line 127... |
Line 140... |
| 127 |
}
|
140 |
}
|
| 128 |
|
141 |
|
| 129 |
/**
|
142 |
/**
|
| 130 |
* Remet à 0 le status "proposition_retenue" pour toutes les propositions faites sur cette
|
143 |
* Remet à 0 le status "proposition_retenue" pour toutes les propositions faites sur cette
|
| 131 |
* observation à l'exception de celle désormais validée
|
144 |
* observation à l'exception de celle désormais validée (qui voit son ce_validateur et sa date validation mise à jour)
|
| 132 |
*/
|
145 |
*/
|
| 133 |
private function mettreAJourPropositionRetenue() {
|
146 |
private function mettreAJourPropositionRetenue() {
|
| - |
|
147 |
$requete = 'UPDATE del_commentaire '.
|
| - |
|
148 |
"SET proposition_retenue = IF(id_commentaire = {$this->idProposition}, 1, 0), ".
|
| 134 |
$requete = 'UPDATE del_commentaire '.
|
149 |
"ce_validateur = IF(id_commentaire = {$this->idProposition}, {$this->idValidateurObs} , ce_validateur), ".
|
| 135 |
"SET proposition_retenue = IF(id_commentaire = {$this->idProposition}, 1, 0) ".
|
150 |
"date_validation = IF(id_commentaire = {$this->idProposition}, NOW() , date_validation) ".
|
| - |
|
151 |
"WHERE ce_observation = {$this->idObs} ".
|
| 136 |
"WHERE ce_observation = {$this->idObs} ".
|
152 |
' -- '.__FILE__.' : '.__LINE__;
|
| 137 |
' -- '.__FILE__.' : '.__LINE__;
|
153 |
|
| 138 |
return $this->bdd->requeter($requete);
|
154 |
return $this->bdd->requeter($requete);
|
| 139 |
}
|
155 |
}
|