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 sans paramètres |
* Point d'entrée GET |
*/ |
public function getRessource() { |
// par défaut, mode anonyme |
41,7 → 41,11 |
// 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); |
48,19 → 52,6 |
} |
|
/** |
* 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é) |
*/ |
116,6 → 107,7 |
$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); |
122,6 → 114,8 |
// rechargement après l'avoir ajouté (un peu nul) |
$utilisateur_existant = $this->chargerUtilisateur($courriel); |
} |
|
$this->setUtilisateur($utilisateur_existant); |
} |
|
// stockage de l'utilisateur en session |
251,36 → 245,6 |
} |
|
/** |
* 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) { |