Subversion Repositories eFlore/Applications.coel

Compare Revisions

No changes between revisions

Ignore whitespace Rev 1949 → Rev 1950

/trunk/jrest/services/CoelUtilisateur.php
94,6 → 94,7
 
// lecture des infos dans l'annuaire (relou mais nécessaire pour la copie dans la table Personnes de CoeL)
$infosAnnuaire = $this->obtenirInfosAnnuaire($courriel);
$infosAnnuaire['courriel'] = $courriel;
$this->setInfosAnnuaire($infosAnnuaire);
//echo "Infos Annu: "; var_dump($infosAnnuaire);
 
107,19 → 108,19
 
$presence_dans_coel = ($utilisateur_existant != false); // si on l'a trouvé juste au dessus
$this->debug[] = "Presence: $presence_dans_coel";
$mot_de_passe_sha1 = $infosAnnuaire['pass'];
//$mot_de_passe_sha1 = $infosAnnuaire['pass'];
//echo "MDP: " .$mot_de_passe_sha1;
 
if ($presence_dans_coel) {
// Nécessite de faire une mise à jour
$this->debug[] = "Mise à jour de l'utilisateur {$infosAnnuaire['id']}";
$this->mettreAJourUtilisateur($courriel, $mot_de_passe_sha1, $infosAnnuaire);
$this->mettreAJourUtilisateur($courriel, $infosAnnuaire);
// ci-dessous : ne pas caster en int car GWT attend une String (le con !)
$utilisateur_existant['licence'] = $this->recupererLicenceUtilisateur($infosAnnuaire['id']);
} else {
// Nécessite d'ajouter le nouvel utilisateur
$this->debug[] = "Ajout d'une nouvel utilisateur";
$this->ajouterUtilisateurACoel($infosAnnuaire, $mot_de_passe_sha1);
$this->ajouterUtilisateurACoel($infosAnnuaire);
// rechargement après l'avoir ajouté (un peu nul)
$utilisateur_existant = $this->chargerUtilisateur($courriel);
}
230,7 → 231,7
/**
* Met à jour les données de l'utilisateur dans la table CoeL Personnes
*/
protected function mettreAJourUtilisateur($login, $mot_de_passe_sha1, $infos) {
protected function mettreAJourUtilisateur($login, $infos) {
try {
$cp_fmt_nom_complet = $infos['prenom'].' '.$infos['nom'];
$requete = ''
238,9 → 239,8
. " SET cp_id_personne = '{$infos['id']}', "
. " cp_fmt_nom_complet = '$cp_fmt_nom_complet', cp_prenom = '{$infos['prenom']}', cp_nom = '{$infos['nom']}', "
. " cp_code_postal = '{$infos['code_postal']}', cp_ville = '{$infos['ville']}', cp_truk_courriel = '{$infos['courriel']}', "
. " cp_login = '{$infos['courriel']}', cp_mot_de_passe = '$mot_de_passe_sha1', cp_ce_annuaire = '{$infos['id']}' "
. " cp_login = '{$infos['courriel']}', cp_ce_annuaire = '{$infos['id']}' "
. " WHERE cp_login = '$login' "
//. " AND cp_mot_de_passe = '{$infos['mot_de_passe']}' " // WTF ?
;
 
// Ajout des données
286,11 → 286,13
/**
* Ajoute une copie de l'utilisateur dans la table CoeL Personnes
*/
protected function ajouterUtilisateurACoel($infos, $mot_de_passe_sha1) {
protected function ajouterUtilisateurACoel($infos) {
try {
// Construction de la requête d'ajout
// Notes : pour rester compatibles avec l'annuaire de Tela, les utilisateurs sont ajoutés directement avec l'id
// de l'annuaire Tela. Dans CoelPersonne, les personnes qui ne sont pas utilisateur sont ajoutés avec un id supérieur à 100 000
// Notes 2017 : on ne devrait plus stocker les mots de passe dans la table coel_personne, et on ne devrait plus
// considérer que la base de données de l'annuaire se trouve sur le même serveur.
$cp_fmt_nom_complet = $infos['prenom'].' '.$infos['nom'];
$cp_mark_licence = '0';
// si un utilisateur a changé son email dans un compte TB existant, une ligne avec son ID existera déjà et /i
297,12 → 299,13
// => on fait un REPLACE (attention à la compatibilité !)
$requete = 'REPLACE INTO coel_personne '.
' (cp_id_personne, cp_fmt_nom_complet, cp_prenom, cp_nom, cp_code_postal, '.
' cp_ville, cp_truk_courriel, cp_login, cp_mot_de_passe, cp_ce_annuaire, cp_mark_licence) '.
' cp_ville, cp_truk_courriel, cp_login, cp_ce_annuaire, cp_mark_licence) '.
"VALUES ('{$infos['id']}', '$cp_fmt_nom_complet', '{$infos['prenom']}', '{$infos['nom']}', ".
"'{$infos['code_postal']}', '{$infos['ville']}', '{$infos['courriel']}', '{$infos['courriel']}', '".$mot_de_passe_sha1."', ".
"'{$infos['code_postal']}', '{$infos['ville']}', '{$infos['courriel']}', '{$infos['courriel']}', ".
"'{$infos['id']}', $cp_mark_licence) ";
//$this->debug[] = $requete;
// Ajout des données
var_dump($requete);
$resultat = $this->bdd->exec($requete);
if ($resultat === false) {
$this->debug[] = "Utilisateur NON ajouté dans coel_personne car la requête a échouée.";
317,6 → 320,7
 
/**
* Appelle l'annuaire pour connaître tous les détails de l'utilisateur de courriel $login
* @TODO gérer le pseudo un jour !
*/
protected function obtenirInfosAnnuaire($login) {
$url_annuaire = $this->config['coel']['urlAnnuaire'];
332,7 → 336,14
$url_annuaire .= '/xml'; // @TODO un jour, faire en sorte que ça lise du JSON
 
$resultat_annuaire = file_get_contents($url_annuaire);
$tableau_annuaire = null;
// valeurs par défaut pour éviter des warning
$tableau_annuaire = array(
"nom" => "",
"prenom" => "",
"ville" => "",
"code_postal" => "",
"courriel" => ""
);
if ($xml_utilisateur = simplexml_load_string($resultat_annuaire)) {
// La fonction a retourné un objet
foreach ($xml_utilisateur->children() as $key => $val) {
390,9 → 401,9
* @return true si le jeton est vérifié, false sinon
*/
protected function verifierJeton($jeton) {
$urlServiceVerification =$this->config['coel']['urlServiceBaseAuth'] . "verifierjeton";
$urlServiceVerification = $this->config['coel']['urlServiceBaseAuth'] . "verifierjeton";
$urlServiceVerification .= "?token=" . $jeton;
 
// file_get_contents râle si le certificat HTTPS est auto-signé
//$retour = file_get_contents($urlServiceVerification);
/trunk/jrest/services/Coel.php
555,6 → 555,8
/**
* Tente de trouver un utilisateur dans la table Personnes de CoeL, en fonction de son
* courriel ($login); si le mot de passe est fournie, le vérifie, sinon l'ignore
*
* MàJ 2017 : le mot de passe n'est plus stocké en local, tout se fait via l'annuaire
*/
protected function chargerUtilisateur($login, $mot_de_passe = null) {
$sortie = false;
563,8 → 565,8
' cp_ville AS ville, cp_code_postal AS code_postal, '.
' cp_mark_licence AS licence '.
'FROM coel_personne '.
"WHERE cp_login = {$this->bdd->quote($login)} ".
((!is_null($mot_de_passe)) ? "AND cp_mot_de_passe = {$this->bdd->quote($mot_de_passe)} " : '');
"WHERE cp_login = {$this->bdd->quote($login)} ";
//((!is_null($mot_de_passe)) ? "AND cp_mot_de_passe = {$this->bdd->quote($mot_de_passe)} " : '');
try {
$resultat = $this->bdd->query($requete)->fetch();
if ($resultat === false) {
/trunk/.
Property changes:
Modified: svn:ignore
gwt-unitCache
buildMathias.xml
.buildpath
+nbproject