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 |
}
|