Subversion Repositories eFlore/Applications.del

Rev

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

Rev 1977 Rev 2157
Line 50... Line 50...
50
		$resultat->corps = array('id_commentaire' => $idCommentaireAjoute);
50
		$resultat->corps = array('id_commentaire' => $idCommentaireAjoute);
Line 51... Line 51...
51
 
51
 
52
		return $resultat;
52
		return $resultat;
Line -... Line 53...
-
 
53
	}
-
 
54
 
-
 
55
	/**
-
 
56
	 * Vérifie notamment que l'auteur du vote est désigné soit par un ID, soit
53
	}
57
	 * par un triplet (nom, prénom, adresse courriel)
54
 
58
	 */
55
	private function verifierParametres() {
59
	private function verifierParametres() {
56
		if (!isset($this->parametres['observation'])) {
60
		if (!isset($this->parametres['observation'])) {
Line 97... Line 101...
97
				$this->erreurs[] = "S'il est présent le paramètre «$param» ne peut pas être vide.";
101
				$this->erreurs[] = "S'il est présent le paramètre «$param» ne peut pas être vide.";
98
			}
102
			}
99
		}
103
		}
100
	}
104
	}
Line -... Line 105...
-
 
105
 
-
 
106
	/**
-
 
107
	 * Si l'auteur du vote est désigné par un ID, va chercher ses nom, prénom, courriel;
-
 
108
	 * s'il est désigné par un triplet (nom, prénom, adresse courriel), va chercher son ID
101
 
109
	 */
102
	private function completerParametresUtilisateur() {
110
	private function completerParametresUtilisateur() {
103
		$utilisateur =  (isset($this->parametres['auteur.id'])) ? $this->obtenirUtilisateurAvecId() : $this->obtenirUtilisateurSansId();
111
		$utilisateur =  (isset($this->parametres['auteur.id'])) ? $this->obtenirUtilisateurAvecId() : $this->obtenirUtilisateurSansId();
104
		if ($utilisateur !== false) {
112
		if ($utilisateur != false) {
105
			foreach ($utilisateur as $param => $valeur) {
113
			foreach ($utilisateur as $param => $valeur) {
106
				$this->parametres[$param] = $valeur;
114
				$this->parametres[$param] = $valeur;
107
			}
115
			}
108
		}
116
		}
Line -... Line 117...
-
 
117
	}
-
 
118
 
-
 
119
	/**
-
 
120
	 * On suppose que si l'utilisateur envoie sa proposition avec un ID, c'est
-
 
121
	 * qu'il est connu d'IP, donc qu'on trouvera ses coordonnées dans
-
 
122
	 * del_utilisateur_infos
-
 
123
	 * 
109
	}
124
	 * @TODO valider cette hypothèse
110
 
125
	 */
111
	private function obtenirUtilisateurAvecId() {
126
	private function obtenirUtilisateurAvecId() {
112
		$auteurIdP = $this->bdd->proteger($this->parametres['auteur.id']);
127
		$auteurIdP = $this->bdd->proteger($this->parametres['auteur.id']);
113
		$requete = "SELECT id_utilisateur AS 'auteur.id', nom AS 'auteur.nom', prenom AS 'auteur.prenom', courriel AS 'auteur.courriel' ".
128
		$requete = "SELECT id_utilisateur AS 'auteur.id', nom AS 'auteur.nom', prenom AS 'auteur.prenom', courriel AS 'auteur.courriel' ".
114
			'FROM del_utilisateur '.
129
			'FROM del_utilisateur_infos '.
115
			"WHERE id_utilisateur = $auteurIdP ".
130
			"WHERE id_utilisateur = $auteurIdP ".
116
			' -- '.__FILE__.' : '.__LINE__;
131
			' -- '.__FILE__.' : '.__LINE__;
117
		$utilisateur = $this->bdd->recuperer($requete);
132
		$utilisateur = $this->bdd->recuperer($requete);
Line -... Line 133...
-
 
133
		return $utilisateur;
-
 
134
	}
-
 
135
 
-
 
136
	/**
-
 
137
	 * Pour un utilisateur désigné par un triplet (nom, prenom, adresse courriel), demande
-
 
138
	 * son ID à l'annuaire - vue la base de données (2017-03-24), aucun tuple ne contient
118
		return $utilisateur;
139
	 * une adresse courriel sans contenir d'ID, mais beaucoup ne contiennent ni l'un ni
119
	}
140
	 * l'autre (code stupide, tentative de correction ajd)
120
 
141
	 */
121
	private function obtenirUtilisateurSansId() {
142
	private function obtenirUtilisateurSansId() {
Line -... Line 143...
-
 
143
		$nomP = $this->bdd->proteger($this->parametres['auteur.nom']);
-
 
144
		$prenomP = $this->bdd->proteger($this->parametres['auteur.prenom']);
122
		$nomP = $this->bdd->proteger($this->parametres['auteur.nom']);
145
		$courrielP = $this->bdd->proteger($this->parametres['auteur.courriel']);
123
		$prenomP = $this->bdd->proteger($this->parametres['auteur.prenom']);
146
 
124
		$courrielP = $this->bdd->proteger($this->parametres['auteur.courriel']);
147
		// Si l'utilisateur s'est déjà connecté à DeL au moins une fois, on récupère ses
125
 
148
		// nom et prénom connus dans la base; on lui interdit d'usurper sa propre identité
126
		$requete = "SELECT id_utilisateur AS 'auteur.id', nom AS 'auteur.nom', prenom AS 'auteur.prenom', ".
149
		$requete = "SELECT id_utilisateur AS 'auteur.id', nom AS 'auteur.nom', prenom AS 'auteur.prenom', ".
127
			"courriel AS 'auteur.courriel' ".
150
			"courriel AS 'auteur.courriel' ".
-
 
151
			'FROM del_utilisateur_infos '.
-
 
152
			"WHERE courriel = $courrielP ".
-
 
153
			' -- '.__FILE__.' : '.__LINE__;
-
 
154
		$utilisateur = $this->bdd->recuperer($requete);
-
 
155
 
128
			'FROM del_utilisateur '.
156
		// si l'utilisateur n'a pas été trouvé, on devrait aller le chercher dans
129
			"WHERE courriel = $courrielP AND nom = $nomP AND prenom = $prenomP ".
157
		// l'annuaire, au cas où il soit inscrit à TB mais ne se soit pas connecté
Line 130... Line 158...
130
			' -- '.__FILE__.' : '.__LINE__;
158
		// @TODO faire un appel au service annuaire/identite-par-courriel
131
		$utilisateur = $this->bdd->recuperer($requete);
159
 
Line 150... Line 178...
150
		return $resultat['existe'] == 1;
178
		return $resultat['existe'] == 1;
151
	}
179
	}
Line 152... Line 180...
152
 
180
 
153
	private function creerPropositionInitiale() {
181
	private function creerPropositionInitiale() {
-
 
182
		$idObsP =  $this->bdd->proteger($this->parametres['observation']);
154
		$idObsP =  $this->bdd->proteger($this->parametres['observation']);
183
 
155
		$requete = 'INSERT IGNORE INTO del_commentaire '.
184
		$requete = 'INSERT IGNORE INTO del_commentaire '.
156
			'(ce_observation, ce_utilisateur, utilisateur_prenom, utilisateur_nom, utilisateur_courriel, '.
185
			'(ce_observation, ce_utilisateur, utilisateur_prenom, utilisateur_nom, utilisateur_courriel, '.
157
			'nom_sel, nom_sel_nn, nom_ret, nom_ret_nn, nt, famille, nom_referentiel, date, proposition_initiale) '.
186
			'nom_sel, nom_sel_nn, nom_ret, nom_ret_nn, nt, famille, nom_referentiel, date, proposition_initiale) '.
158
			'SELECT id_observation, ce_utilisateur, prenom, nom, courriel, nom_sel, '.
187
			'SELECT id_observation, ce_utilisateur, prenom_utilisateur, nom_utilisateur, courriel_utilisateur, nom_sel, '.
159
			"IF(nom_sel_nn = 0, NULL, nom_sel_nn), IF(nom_ret = '', NULL, nom_ret), IF(nom_ret_nn = 0, NULL, nom_ret_nn), ".
188
			"IF(nom_sel_nn = 0, NULL, nom_sel_nn), IF(nom_ret = '', NULL, nom_ret), IF(nom_ret_nn = 0, NULL, nom_ret_nn), ".
160
			"IF(nt = 0, NULL, nt), IF(famille = '', NULL, famille), IF(nom_sel_nn = 0, NULL, nom_referentiel), NOW(), '1' ".
189
			"IF(nt = 0, NULL, nt), IF(famille = '', NULL, famille), IF(nom_sel_nn = 0, NULL, nom_referentiel), NOW(), '1' ".
161
			'FROM del_observation AS do '.
-
 
162
			'	LEFT JOIN del_utilisateur AS du '.
-
 
163
			'		ON do.ce_utilisateur = du.id_utilisateur '.
190
			'FROM del_observation AS do '.
164
			"WHERE id_observation = $idObsP ".
191
			"WHERE id_observation = $idObsP ".
-
 
192
			' -- '.__FILE__.' : '.__LINE__;
165
			' -- '.__FILE__.' : '.__LINE__;
193
 
-
 
194
		$resultat = $this->bdd->executer($requete);
166
		$resultat = $this->bdd->executer($requete);
195
 
167
		return $resultat;
196
		return $resultat;
Line 168... Line 197...
168
	}
197
	}
169
 
198