Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 1907 → Rev 1908

/trunk/jrest/services/CoelUtilisateur.php
28,12 → 28,12
* @version $Id$
* @copyright 2009
*/
class CoelUtilisateur extends Coel {
class CoelUtilisateur extends Coel {
 
protected $licence_acceptee = false;
 
/**
* Point d'entrée GET
* Point d'entrée GET sans paramètres
*/
public function getRessource() {
// par défaut, mode anonyme
41,11 → 41,7
// recherche d'un utilisateur identifié en fonction du jeton SSO
$infosIdentifie = $this->getUtilisateurSSO();
if ($infosIdentifie != null) {
//echo "Infos SSO : "; var_dump($infosIdentifie);
$infos = $infosIdentifie;
// @TODO si la licence n'a pas été acceptée, au revoir les enfants
// on envoie tout de même les infos à l'interface mais on déconnecte les services
//$this->deconnecterUtilisateur();
}
// et vlan, passe-moi l'éponge
$this->envoyer($infos);
52,6 → 48,19
}
 
/**
* Point d'entrée GET avec paramètres
*/
public function getElement($ressources) {
switch($ressources[0]) {
case "setLicence" :
$this->setLicence($ressources[1]);
break;
default:
echo "action [" . $ressources[0] . "] inconnue";
}
}
 
/**
* Renvoie un profil utilisateur CoeL anonyme
* (licence vide, id de session, non connecté)
*/
107,7 → 116,6
$this->mettreAJourUtilisateur($login, $mot_de_passe_sha1, $infosAnnuaire);
$utilisateur_existant['licence'] = (int) $this->recupererLicenceUtilisateur($infosAnnuaire['id']);
} else {
echo "Insertion";
// Nécessite d'ajouter le nouvel utilisateur
$this->debug[] = "Ajout d'une nouvel utilisateur";
$this->ajouterUtilisateurACoel($infosAnnuaire, $mot_de_passe_sha1);
114,8 → 122,6
// rechargement après l'avoir ajouté (un peu nul)
$utilisateur_existant = $this->chargerUtilisateur($courriel);
}
$this->setUtilisateur($utilisateur_existant);
}
 
// stockage de l'utilisateur en session
245,6 → 251,36
}
 
/**
* Met à jour l'utilisateur d'id $idUtilisateur, et passe son acceptation de
* la licence à "1"
*/
protected function setLicence($idUtilisateur = null) {
if ($idUtilisateur == null) {
$messages[] = "Id utilisateur null";
$this->envoyer();
exit;
}
// Mise à jour de l'utilisateur
try {
$requete = 'UPDATE coel_personne '.
"SET cp_mark_licence = 1 ".
"WHERE cp_ce_annuaire = '$idUtilisateur' ";
// Ajout des données
$resultat = $this->bdd->exec($requete);
if ($resultat === false) {
$this->messages[] = "L'utilisateur n'a pas été mis à jour car la requête a échouée.";
} else {
// Confirmation attendue par l'interface
$this->envoyer(array("1"));
exit;
}
} catch (PDOException $e) {
$messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
$this->envoyer();
}
}
 
/**
* Ajoute une copie de l'utilisateur dans la table CoeL Personnes
*/
protected function ajouterUtilisateurACoel($infos, $mot_de_passe_sha1) {