Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 3067 → Rev 3068

/branches/v2.27-secateur/jrest/services/CelWidgetSaisie.php
102,7 → 102,7
$obsAAjouter['lieudit'] = isset($obs['lieudit']) ? $obs['lieudit'] : null;
$obsAAjouter['station'] = isset($obs['station']) ? $obs['station'] : null;
$obsAAjouter['milieu'] = isset($obs['milieu']) ? $obs['milieu'] : null;
$obsAAjouter['altitude'] = isset($obs['altitude']) ? $obs['altitude'] : null;
$obsAAjouter['altitude'] = (! empty($obs['altitude'])) ? $obs['altitude'] : null;
$obsAAjouter['latitude'] = $obs['latitude'];
$obsAAjouter['longitude'] = $obs['longitude'];
$obsAAjouter['geodatum'] = 'WGS84';
372,13 → 372,52
return $img_a_taguer_ids_noms;
}
 
/**
* Regarde si les infos concernant l'utilisateur en cours sont satisfaisantes
* (un ID et des infos complètes venant d'un jeton); si non, regarde si un
* ID a été passé en POST (cas du Widget de Saisie); si non, regarde tout de
* même si l'email envoyé en POST correspond à un utilisateur connu dans la
* table cel_utilisateurs_infos (cas de la synchro Pl@ntNet > TB)
*
* @TODO réviser l'intégralité du flux pour éviter cette situation
* sous-optimale et spaghettoïde
*/
private function affecterChampsManquantsUtilisateur($utilisateur) {
$gestion_utilisateur = new GestionUtilisateur($this->config);
// le nom de la méthode est trompeur : $infos_complementaires ne sera
// chargé que si un jeton SSO est présent
$infos_complementaires = $gestion_utilisateur->obtenirUtilisateurSiExiste($utilisateur['courriel']);
// si on n'a pas d'ID pour l'instant
if(!isset($utilisateur['id_utilisateur']) || trim($utilisateur['id_utilisateur']) == '') {
$utilisateur['id_utilisateur'] = ($infos_complementaires['connecte'] && isset($infos_complementaires['id_utilisateur'])) ? $infos_complementaires['id_utilisateur'] : $utilisateur['courriel'];
$utilisateur['prenom'] = isset($infos_complementaires['prenom']) && trim($infos_complementaires['prenom']) != '' ? $infos_complementaires['prenom'] : $utilisateur['prenom'];
$utilisateur['nom'] = isset($infos_complementaires['nom']) && trim($infos_complementaires['nom']) != '' ? $infos_complementaires['nom'] : $utilisateur['nom'];
// si les infos complémentaires ont été trouvées, on charge ce
// qu'elles contiennent
if ($infos_complementaires['connecte'] && isset($infos_complementaires['id_utilisateur'])) {
// on essaye de ne pas écraser avec du vide (on sait jamais)
$utilisateur['id_utilisateur'] = $infos_complementaires['id_utilisateur'];
if (isset($infos_complementaires['prenom']) && trim($infos_complementaires['prenom']) != '') {
$utilisateur['prenom'] = $infos_complementaires['prenom'];
}
if (isset($infos_complementaires['nom']) && trim($infos_complementaires['nom']) != '') {
$utilisateur['nom'] = $infos_complementaires['nom'];
}
} else {
// sinon on regarde dans cel_utilisateurs_infos pour voir si on
// ne connait pas l'email quand-même
$infosCUI = $gestion_utilisateur->lireCelUtilisateursInfos($utilisateur['courriel']);
if ($infosCUI) {
if (! empty($infosCUI['id_utilisateur'])) {
$utilisateur['id_utilisateur'] = $infosCUI['id_utilisateur'];
}
if (! empty($infosCUI['prenom'])) {
$utilisateur['prenom'] = $infosCUI['prenom'];
}
if (! empty($infosCUI['nom'])) {
$utilisateur['nom'] = $infosCUI['nom'];
}
}
// else: en dernier recours on garde ce qu'on a dans le POST; on
// obtient alors un obs "anonyme" (utilisateur non-inscrit)
}
}
 
return $utilisateur;