Subversion Repositories eFlore/Applications.del

Rev

Rev 1700 | Rev 1793 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1700 Rev 1773
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
	}