/trunk/services/modules/0.1/observations/VoteObservation.php |
---|
69,6 → 69,13 |
return $retour; |
} |
/** |
* Recherche les coordonnées d'un utilisateur en fonction de son ID; |
* puisqu'il a un ID c'est qu'il est connecté, on suppose donc qu'il |
* a un tuple dans del_utilisateur_infos |
* |
* @TODO vérifier cette hypothèse |
*/ |
private function chercherUtilisateur($id) { |
// par défaut, pas d'info |
$utilisateur = array(); |
77,7 → 84,7 |
$idUtilisateurP = $this->bdd->proteger($id); |
$requete = "SELECT id_utilisateur AS 'auteur.id', nom AS 'auteur.nom', prenom AS 'auteur.prenom', ". |
"courriel AS 'auteur.courriel' ". |
'FROM del_utilisateur '. |
'FROM del_utilisateur_infos '. |
"WHERE id_utilisateur = $idUtilisateurP ". |
' -- '.__FILE__.':'.__LINE__; |
$utilisateur = $this->bdd->recuperer($requete); |
157,11 → 164,10 |
$requete = 'INSERT IGNORE INTO del_commentaire '. |
'(ce_observation, ce_utilisateur, utilisateur_prenom, utilisateur_nom, utilisateur_courriel, '. |
'nom_sel, nom_sel_nn, nom_ret, nom_ret_nn, nt, famille, nom_referentiel, date, proposition_initiale) '. |
'SELECT id_observation, ce_utilisateur, prenom, nom, '. |
' courriel, nom_sel, nom_sel_nn, nom_ret, nom_ret_nn, '. |
'SELECT id_observation, ce_utilisateur, prenom_utilisateur, nom_utilisateur, '. |
' courriel_utilisateur, nom_sel, nom_sel_nn, nom_ret, nom_ret_nn, '. |
" nt, famille, nom_referentiel, NOW(), '1' ". |
'FROM del_observation do '. |
' LEFT JOIN del_utilisateur du ON (do.ce_utilisateur = du.id_utilisateur) '. |
"WHERE id_observation = $idObservationP ". |
' -- '.__FILE__.' : '.__LINE__; |
/trunk/services/modules/0.1/syndication/Tags.php |
---|
180,9 → 180,9 |
' ON ce_image = id_image '. |
' INNER JOIN del_observation AS do '. |
' ON di.ce_observation = do.id_observation '. |
' LEFT JOIN del_utilisateur AS duo '. |
' LEFT JOIN del_utilisateur_infos AS duo '. |
' ON do.ce_utilisateur = duo.id_utilisateur '. |
' LEFT JOIN del_utilisateur AS du '. |
' LEFT JOIN del_utilisateur_infos AS du '. |
' ON if((CHAR_LENGTH(dit.ce_utilisateur) <> 32),CAST(dit.ce_utilisateur AS unsigned),0) '. |
' = du.id_utilisateur '. |
'WHERE actif = 1 '. |
/trunk/services/modules/0.1/syndication/Votes.php |
---|
173,9 → 173,9 |
' ON di.ce_observation = do.id_observation '. |
' INNER JOIN del_image_protocole AS dip '. |
' ON ce_protocole = id_protocole '. |
' LEFT JOIN del_utilisateur AS duo '. |
' LEFT JOIN del_utilisateur_infos AS duo '. |
' ON do.ce_utilisateur = duo.id_utilisateur '. |
' LEFT JOIN del_utilisateur AS duv '. |
' LEFT JOIN del_utilisateur_infos AS duv '. |
' ON if((CHAR_LENGTH(divo.ce_utilisateur) <> 32),CAST(divo.ce_utilisateur AS unsigned),0) '. |
' = duv.id_utilisateur '. |
"WHERE id_vote IN ($idsVotesConcat) ". |
/trunk/services/modules/0.1/syndication/Commentaires.php |
---|
167,12 → 167,10 |
$requete = 'SELECT DISTINCT dc.*, '. |
' dob.id_observation AS dob_id_observation, dob.ce_zone_geo AS dob_ce_zone_geo, '. |
' dob.zone_geo AS dob_zone_geo, dob.date_observation AS dob_date_observation, dob.nom_sel AS dob_nom_sel, '. |
' duo.prenom AS observateur_prenom, duo.nom AS observateur_nom, duo.courriel AS observateur_courriel '. |
' dob.prenom_utilisateur AS observateur_prenom, dob.nom_utilisateur AS observateur_nom, dob.courriel_utilisateur AS observateur_courriel '. |
'FROM del_commentaire AS dc '. |
' INNER JOIN del_observation AS dob '. |
' ON dob.id_observation = dc.ce_observation '. |
' LEFT JOIN del_utilisateur AS duo '. |
' ON dob.ce_utilisateur = duo.id_utilisateur '. |
"WHERE id_commentaire IN ($idsCommentairesconcat) ". |
'ORDER BY dc.date DESC '. |
'LIMIT '.$this->navigation->getDepart().','.$this->navigation->getLimite().' '. |
/trunk/services/modules/0.1/commentaires/AjouterCommentaire.php |
---|
52,6 → 52,10 |
return $resultat; |
} |
/** |
* Vérifie notamment que l'auteur du vote est désigné soit par un ID, soit |
* par un triplet (nom, prénom, adresse courriel) |
*/ |
private function verifierParametres() { |
if (!isset($this->parametres['observation'])) { |
$this->erreurs[] = "Impossible d'ajouter un commentaire sans identifiant d'observation (paramètre 'observation')."; |
99,9 → 103,13 |
} |
} |
/** |
* Si l'auteur du vote est désigné par un ID, va chercher ses nom, prénom, courriel; |
* s'il est désigné par un triplet (nom, prénom, adresse courriel), va chercher son ID |
*/ |
private function completerParametresUtilisateur() { |
$utilisateur = (isset($this->parametres['auteur.id'])) ? $this->obtenirUtilisateurAvecId() : $this->obtenirUtilisateurSansId(); |
if ($utilisateur !== false) { |
if ($utilisateur != false) { |
foreach ($utilisateur as $param => $valeur) { |
$this->parametres[$param] = $valeur; |
} |
108,10 → 116,17 |
} |
} |
/** |
* On suppose que si l'utilisateur envoie sa proposition avec un ID, c'est |
* qu'il est connu d'IP, donc qu'on trouvera ses coordonnées dans |
* del_utilisateur_infos |
* |
* @TODO valider cette hypothèse |
*/ |
private function obtenirUtilisateurAvecId() { |
$auteurIdP = $this->bdd->proteger($this->parametres['auteur.id']); |
$requete = "SELECT id_utilisateur AS 'auteur.id', nom AS 'auteur.nom', prenom AS 'auteur.prenom', courriel AS 'auteur.courriel' ". |
'FROM del_utilisateur '. |
'FROM del_utilisateur_infos '. |
"WHERE id_utilisateur = $auteurIdP ". |
' -- '.__FILE__.' : '.__LINE__; |
$utilisateur = $this->bdd->recuperer($requete); |
118,17 → 133,30 |
return $utilisateur; |
} |
/** |
* Pour un utilisateur désigné par un triplet (nom, prenom, adresse courriel), demande |
* son ID à l'annuaire - vue la base de données (2017-03-24), aucun tuple ne contient |
* une adresse courriel sans contenir d'ID, mais beaucoup ne contiennent ni l'un ni |
* l'autre (code stupide, tentative de correction ajd) |
*/ |
private function obtenirUtilisateurSansId() { |
$nomP = $this->bdd->proteger($this->parametres['auteur.nom']); |
$prenomP = $this->bdd->proteger($this->parametres['auteur.prenom']); |
$courrielP = $this->bdd->proteger($this->parametres['auteur.courriel']); |
// Si l'utilisateur s'est déjà connecté à DeL au moins une fois, on récupère ses |
// nom et prénom connus dans la base; on lui interdit d'usurper sa propre identité |
$requete = "SELECT id_utilisateur AS 'auteur.id', nom AS 'auteur.nom', prenom AS 'auteur.prenom', ". |
"courriel AS 'auteur.courriel' ". |
'FROM del_utilisateur '. |
"WHERE courriel = $courrielP AND nom = $nomP AND prenom = $prenomP ". |
'FROM del_utilisateur_infos '. |
"WHERE courriel = $courrielP ". |
' -- '.__FILE__.' : '.__LINE__; |
$utilisateur = $this->bdd->recuperer($requete); |
// si l'utilisateur n'a pas été trouvé, on devrait aller le chercher dans |
// l'annuaire, au cas où il soit inscrit à TB mais ne se soit pas connecté |
// @TODO faire un appel au service annuaire/identite-par-courriel |
return $utilisateur; |
} |
152,18 → 180,19 |
private function creerPropositionInitiale() { |
$idObsP = $this->bdd->proteger($this->parametres['observation']); |
$requete = 'INSERT IGNORE INTO del_commentaire '. |
'(ce_observation, ce_utilisateur, utilisateur_prenom, utilisateur_nom, utilisateur_courriel, '. |
'nom_sel, nom_sel_nn, nom_ret, nom_ret_nn, nt, famille, nom_referentiel, date, proposition_initiale) '. |
'SELECT id_observation, ce_utilisateur, prenom, nom, courriel, nom_sel, '. |
'SELECT id_observation, ce_utilisateur, prenom_utilisateur, nom_utilisateur, courriel_utilisateur, nom_sel, '. |
"IF(nom_sel_nn = 0, NULL, nom_sel_nn), IF(nom_ret = '', NULL, nom_ret), IF(nom_ret_nn = 0, NULL, nom_ret_nn), ". |
"IF(nt = 0, NULL, nt), IF(famille = '', NULL, famille), IF(nom_sel_nn = 0, NULL, nom_referentiel), NOW(), '1' ". |
'FROM del_observation AS do '. |
' LEFT JOIN del_utilisateur AS du '. |
' ON do.ce_utilisateur = du.id_utilisateur '. |
"WHERE id_observation = $idObsP ". |
' -- '.__FILE__.' : '.__LINE__; |
$resultat = $this->bdd->executer($requete); |
return $resultat; |
} |
/trunk/services/modules/0.1/statistiques/StatistiquesParAnnee.php |
---|
662,7 → 662,7 |
*/ |
private function getListeMeilleursVoteurs() { |
$liste = array(); |
$requete = "SELECT * FROM (SELECT courriel, ce_utilisateur, COUNT(DISTINCT id_vote) AS nombre FROM del_commentaire_vote, del_utilisateur where"; |
$requete = "SELECT * FROM (SELECT courriel, ce_utilisateur, COUNT(DISTINCT id_vote) AS nombre FROM del_commentaire_vote, del_utilisateur_infos where"; |
if ($this->annee != null) { |
$requete .= " year(date) = " . $this->annee . " AND"; |
} |
/trunk/services/bibliotheque/GestionUtilisateur.php |
---|
66,7 → 66,7 |
* Recherche un jeton SSO dans l'entête HTTP "Authorization", vérifie ce |
* jeton auprès de l'annuaire et en cas de succès charge les informations |
* de l'utilisateur associé; si c'est la première fois que l'utilisateur |
* utilise DeL, crée un profil local dans del_utilisateurs_infos; si le |
* utilise DeL, crée un profil local dans del_utilisateur_infos; si le |
* profil a changé depuis la dernière connexion, le met à jour ainsi que |
* les coordonnées dans les commentaires |
* |
114,7 → 114,7 |
} |
/** |
* Retourne true si le profil local stocké dans del_utilisateurs_infos |
* Retourne true si le profil local stocké dans del_utilisateur_infos |
* n'est plus à jour par rapport aux informations du jeton SSO; si le |
* jeton est vide, retourne false pour éviter de tout casser |
*/ |
130,7 → 130,7 |
} |
/** |
* Met à jour del_utilisateurs_infos en fonction des informations |
* Met à jour del_utilisateur_infos en fonction des informations |
* contenues par le jeton SSO; si ce dernier est vide, ne fait |
* rien (boulette-proof) |
*/ |
137,7 → 137,7 |
protected function mettreAJourProfilLocal() { |
echo "Mise à jour profil local !!"; |
if ($this->jetonDecode != null && $this->jetonDecode['id'] != '') { |
$requete = 'UPDATE del_utilisateurs_infos SET' |
$requete = 'UPDATE del_utilisateur_infos SET' |
. ' nom = ' . $this->bdd->proteger($this->jetonDecode['nom']) . ', ' |
. ' intitule = ' . $this->bdd->proteger($this->jetonDecode['intitule']) . ', ' |
. ' prenom = ' . $this->bdd->proteger($this->jetonDecode['prenom']) |
369,7 → 369,7 |
} |
/** |
* Ajoute un utilisateur à la table des profils locaux del_utilisateurs_infos; |
* Ajoute un utilisateur à la table des profils locaux del_utilisateur_infos; |
* suppose que l'utilisateur est correctement identifié (jeton décodé disponible) |
*/ |
public function initialiserInfosUtilisateur($id_utilisateur) { |