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) {
/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")) {
/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);
}
}