/trunk/jrest/services/CoelUtilisateur.php |
---|
33,7 → 33,7 |
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) { |
/trunk/src/org/tela_botanica/client/http/JsonRestRequestCallback.java |
---|
1,5 → 1,6 |
package org.tela_botanica.client.http; |
import org.tela_botanica.client.Coel; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.composants.InfoLogger; |
import org.tela_botanica.client.modeles.Information; |
/trunk/src/org/tela_botanica/client/composants/LicenceFenetre.java |
---|
1,6 → 1,7 |
package org.tela_botanica.client.composants; |
import org.tela_botanica.client.Coel; |
import org.tela_botanica.client.ComposantClass; |
import org.tela_botanica.client.ComposantId; |
import org.tela_botanica.client.Mediateur; |
/trunk/src/org/tela_botanica/client/modeles/UtilisateurAsyncDao.java |
---|
132,7 → 132,7 |
} |
// Obtention de l'utilisateur final d'après le service de préférences |
//Coel.LogVersFirebug("va chercher utilisateur Coel"); |
Coel.LogVersFirebug("va chercher utilisateur Coel"); |
getEtatUtilisateurSansAnnuaire(); |
} |
169,6 → 169,13 |
AuthInfo info = parserAuthJson(responseValue); |
gererRetourAuthInfo(info); |
} |
@Override |
public void onErrorHTTP(Request request, Response reponse) { |
// Si on a été déconnecté, on va chercher un profil utilisateur "anonyme" et |
// on avertit l'interface |
Coel.LogVersFirebug("j'ai une erreur mais je suis content"); |
gererRetourAuthInfo(new AuthInfo()); |
} |
}); |
} |
232,8 → 239,10 |
//Ajout des informations licence |
if (reponse.get(0).isString() != null) { |
Coel.LogVersFirebug("1 : set licence [" + reponse.get(0).isString().stringValue() + "]"); |
utilisateur.setLicence(reponse.get(0).isString().stringValue()); |
} else { |
Coel.LogVersFirebug("2 : set licence vide"); |
utilisateur.setLicence(""); |
} |
283,15 → 292,20 |
} |
/** |
* @TODO CHANGER ÇA ! |
* Envoie une info au service utilisateur de Coel comme quoi le mec a accepté la licence |
*/ |
public void accepterLicence() { |
String[] parametres = {utilisateur.getLogin(), utilisateur.getMotDePasse(), utilisateur.getId()}; |
Coel.LogVersFirebug("accepter licence: " + utilisateur.getLogin()); |
String[] parametres = { |
"setLicence", |
utilisateur.getLogin() |
}; |
final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres); |
rb.envoyerRequete(null, new JsonRestRequestCallback() { |
@Override |
public void surReponse(JSONValue responseValue) { |
Coel.LogVersFirebug("sur réponse setLicence"); |
if (responseValue.isArray() != null) { |
final JSONArray reponse = responseValue.isArray(); |
if (reponse.get(0).isString() != null) { |
298,6 → 312,7 |
String licenceAcceptee = reponse.get(0).isString().stringValue(); |
Information info = new Information("maj_licence"); |
info.setDonnee(0, licenceAcceptee); |
Coel.LogVersFirebug("licence acceptée : " + licenceAcceptee); |
vueARafraichir.rafraichir(info); |
} |
} |
/trunk/src/org/tela_botanica/client/Mediateur.java |
---|
1724,8 → 1724,16 |
//+----------------------------------------------------------------------------------------------------------------+ |
public void rafraichir(Object nouvellesDonnees) { |
Coel.LogVersFirebug("rafraichit mediateur"); |
if (nouvellesDonnees instanceof Utilisateur) { |
repandreEtatIdentification((Utilisateur) nouvellesDonnees); |
Utilisateur infoUtil = (Utilisateur) nouvellesDonnees; |
Coel.LogVersFirebug("Licence dans util : " + infoUtil.avoirLicenceAcceptee()); |
Coel.LogVersFirebug("Licence dans util : " + infoUtil.getLicence()); |
if (infoUtil.getLicence().equals("0")) { |
this.afficherFenetreLicence(this.fenetreIdentification); |
} else { |
repandreEtatIdentification(infoUtil); |
} |
} else if (nouvellesDonnees instanceof Information) { |
Information info = (Information) nouvellesDonnees; |
if (info.getType().equals("modification_personne")) { |