Subversion Repositories eFlore/Applications.del

Rev

Rev 2080 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2080 Rev 2089
Line 103... Line 103...
103
		$idImgP = $this->bdd->proteger($this->ressources[0]);
103
		$idImgP = $this->bdd->proteger($this->ressources[0]);
104
		$idProtocoleP = $this->bdd->proteger($this->parametres['protocole']);
104
		$idProtocoleP = $this->bdd->proteger($this->parametres['protocole']);
105
		$idUtilisateurP = $this->bdd->proteger($this->parametres['utilisateur']);
105
		$idUtilisateurP = $this->bdd->proteger($this->parametres['utilisateur']);
106
		$valeurP = $this->bdd->proteger($this->parametres['valeur']);
106
		$valeurP = $this->bdd->proteger($this->parametres['valeur']);
Line 107... Line -...
107
		
-
 
108
		$gestion_utilisateur = $this->conteneur->getUtilisateur();
-
 
109
		$utilisateur = $gestion_utilisateur->getUtilisateur();
107
		
110
		// Si l'utilisateur n'est pas identifié on vérifie que le protocole n'impose
-
 
111
		// pas d'être connecté pour voter, et le cas échéant, on refuse le vote
-
 
112
		if(!$utilisateur['connecte']) {
-
 
113
			$requete_proto_identifie = 'SELECT identifie FROM del_image_protocole '.
-
 
114
										'WHERE id_protocole = '.$idProtocoleP;
-
 
115
			$proto_identifie = $this->bdd->recuperer($requete_proto_identifie);	
-
 
116
 
-
 
117
			if($proto_identifie['identifie'] == 1) {
-
 
118
				$msg = "Ce protocole nécéssite d'être identifié pour voter.";
-
 
119
				throw new Exception($msg, RestServeur::HTTP_CODE_ERREUR);
-
 
120
			}
-
 
Line 121... Line 108...
121
		}
108
		$this->verifierAutorisationProtocoleIdentifie($this->parametres['protocole'], $this->parametres['utilisateur']);
122
		
109
		
123
		$requete = 'INSERT INTO del_image_vote (ce_image, ce_protocole, ce_utilisateur, valeur, date) '.
110
		$requete = 'INSERT INTO del_image_vote (ce_image, ce_protocole, ce_utilisateur, valeur, date) '.
Line 184... Line 171...
184
	public function modifierVote() {
171
	public function modifierVote() {
185
		$valeurP = $this->bdd->proteger($this->parametres['valeur']);
172
		$valeurP = $this->bdd->proteger($this->parametres['valeur']);
186
		$idImgP = $this->bdd->proteger($this->ressources[0]);
173
		$idImgP = $this->bdd->proteger($this->ressources[0]);
187
		$idProtocoleP = $this->bdd->proteger($this->parametres['protocole']);
174
		$idProtocoleP = $this->bdd->proteger($this->parametres['protocole']);
188
		$idUtilisateurP = $this->bdd->proteger($this->parametres['utilisateur']);
175
		$idUtilisateurP = $this->bdd->proteger($this->parametres['utilisateur']);
-
 
176
 
189
		// @SECURE vérifier que l'utilisateur qui modifie son vote est bien celui qui est connecté
177
		$this->verifierAutorisationProtocoleIdentifie($this->parametres['protocole'], $this->parametres['utilisateur']);
-
 
178
		
190
		$requete = 'UPDATE del_image_vote '.
179
		$requete = 'UPDATE del_image_vote '.
191
			"SET valeur = $valeurP, date = NOW() ".
180
			"SET valeur = $valeurP, date = NOW() ".
192
			"WHERE ce_image = $idImgP AND ce_protocole = $idProtocoleP AND ce_utilisateur = $idUtilisateurP ".
181
			"WHERE ce_image = $idImgP AND ce_protocole = $idProtocoleP AND ce_utilisateur = $idUtilisateurP ".
193
			' -- '.__FILE__.' : '.__LINE__;
182
			' -- '.__FILE__.' : '.__LINE__;
Line 254... Line 243...
254
			$msg = "Aucun vote ne correspond à l'identifiant $idVoteP.";
243
			$msg = "Aucun vote ne correspond à l'identifiant $idVoteP.";
255
			throw new Exception($msg, RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE);
244
			throw new Exception($msg, RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE);
256
		}
245
		}
257
		return $infos;
246
		return $infos;
258
	}
247
	}
-
 
248
	
-
 
249
	private function verifierAutorisationProtocoleIdentifie($idProtocole, $idUtilisateur) {
-
 
250
	
-
 
251
		$idProtocoleP = $this->bdd->proteger($idProtocole);
-
 
252
	
-
 
253
		$gestion_utilisateur = $this->conteneur->getUtilisateur();
-
 
254
		$utilisateur = $gestion_utilisateur->getUtilisateur();
-
 
255
		
-
 
256
		$utilisateurAComparer = $gestion_utilisateur->getIdAnonymeTemporaire();
-
 
257
		
-
 
258
		// Si l'utilisateur n'est pas identifié on vérifie que le protocole n'impose
-
 
259
		// pas d'être connecté pour voter, et le cas échéant, on refuse le vote
-
 
260
		if(!$utilisateur['connecte']) {
-
 
261
			$requete_proto_identifie = 'SELECT identifie FROM del_image_protocole '.
-
 
262
					'WHERE id_protocole = '.$idProtocoleP;
-
 
263
			$proto_identifie = $this->bdd->recuperer($requete_proto_identifie);
-
 
264
	
-
 
265
			if($proto_identifie['identifie'] == 1) {
-
 
266
				$msg = "Ce protocole nécéssite d'être identifié pour voter.";
-
 
267
				throw new Exception($msg, RestServeur::HTTP_CODE_ERREUR);
-
 
268
			}			
-
 
269
		} else {
-
 
270
			$utilisateurAComparer = $utilisateur['id_utilisateur'];
-
 
271
		}
-
 
272
		
-
 
273
		// Sinon on vérifie tout de même que la personne identifiée est bien celle
-
 
274
		// associée aux votes dans les paramètres
-
 
275
		if($utilisateurAComparer != $idUtilisateur) {
-
 
276
			$msg = "L'utilisateur identifié et l'utilisateur du vote ne correspondent pas.";
-
 
277
			throw new Exception($msg, RestServeur::HTTP_CODE_ERREUR);
-
 
278
		}
-
 
279
	}
Line 259... Line 280...
259
 
280
 
260
	private function verifierAutorisationSuppression($voteInfos) {
281
	private function verifierAutorisationSuppression($voteInfos) {
261
		$gestion_utilisateur = $this->conteneur->getUtilisateur();
282
		$gestion_utilisateur = $this->conteneur->getUtilisateur();
262
		$utilisateur = $gestion_utilisateur->getUtilisateur();
283
		$utilisateur = $gestion_utilisateur->getUtilisateur();