Subversion Repositories eFlore/Applications.coel

Rev

Rev 912 | Rev 1173 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
64 jpm 1
package org.tela_botanica.client.modeles;
2
 
3
import org.tela_botanica.client.RegistreId;
772 jpm 4
import org.tela_botanica.client.http.JsonRestRequestBuilder;
5
import org.tela_botanica.client.http.JsonRestRequestCallback;
64 jpm 6
import org.tela_botanica.client.interfaces.Rafraichissable;
989 jpm 7
import org.tela_botanica.client.util.Debug;
346 gduche 8
import org.tela_botanica.client.util.UtilDAO;
64 jpm 9
 
10
import com.extjs.gxt.ui.client.Registry;
346 gduche 11
import com.extjs.gxt.ui.client.widget.Info;
132 jpm 12
import com.google.gwt.core.client.GWT;
64 jpm 13
import com.google.gwt.http.client.Request;
14
import com.google.gwt.http.client.RequestBuilder;
15
import com.google.gwt.http.client.RequestCallback;
16
import com.google.gwt.http.client.RequestException;
17
import com.google.gwt.http.client.Response;
18
import com.google.gwt.json.client.JSONArray;
19
import com.google.gwt.json.client.JSONBoolean;
897 gduche 20
import com.google.gwt.json.client.JSONObject;
64 jpm 21
import com.google.gwt.json.client.JSONParser;
22
import com.google.gwt.json.client.JSONString;
23
import com.google.gwt.json.client.JSONValue;
897 gduche 24
import com.google.gwt.user.client.Window;
64 jpm 25
 
268 jp_milcent 26
/**
27
 * Modele DAO, specifique, permettant la validation, l'acces aux donnees distantes et la présentation des donnees en retour
28
 *
29
 */
69 jpm 30
public class UtilisateurAsyncDao {
268 jp_milcent 31
	private static final String SERVICE_NOM = "CoelUtilisateur";
32
 
65 jpm 33
	private Utilisateur utilisateur = null;
358 jp_milcent 34
	private Rafraichissable vueARafraichir = null;
64 jpm 35
 
36
	/**
37
	 * Constructeur
38
	 * @param retour : méthode appellée en retour d'appel.
39
	 */
772 jpm 40
	public UtilisateurAsyncDao(Rafraichissable vueARafraichirCourrante) {
41
		vueARafraichir = vueARafraichirCourrante;
277 jp_milcent 42
		utilisateur = (Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT);
64 jpm 43
	}
44
 
45
	/**
46
	 * Méthode de classe d'appel du service des gestion d'identification.
47
	 */
48
	public void getEtatUtilisateur() {
772 jpm 49
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM);
50
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
51
			@Override
52
			public void surReponse(JSONValue responseValue) {
53
				if (responseValue.isArray() != null) {
54
					final JSONArray reponse = responseValue.isArray();
55
					// Identifiant utilisateur ou identifiant de session si non identifié
897 gduche 56
					String login = ((JSONString) reponse.get(2)).stringValue();
772 jpm 57
					// Drapeau leve si utilisateur deja identifié
897 gduche 58
					boolean identifie = ((JSONBoolean) reponse.get(3)).booleanValue();
772 jpm 59
					utilisateur.setIdentification(identifie);
60
					utilisateur.setLogin(login);
61
					vueARafraichir.rafraichir(utilisateur);
64 jpm 62
				}
772 jpm 63
			}
64
		});
64 jpm 65
	}
66
 
67
	/**
68
	 * Méthode déconnectant un utilisateur de l'application.
69
	 * @param identifiant de l'utilisateur à déconnecter.
70
	 */
65 jpm 71
	public void deconnecterUtilisateur() {
772 jpm 72
		String[] parametres = {utilisateur.getId()};
73
 
74
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
75
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
76
			@Override
77
			public void surReponse(JSONValue responseValue) {
78
				if (responseValue.isArray() != null) {
79
					final JSONArray reponse = responseValue.isArray();
80
					// Identifiant utilisateur ou identifiant de session si non identifié
897 gduche 81
					String id = ((JSONString) reponse.get(2)).stringValue();
772 jpm 82
					// Drapeau levé si l'utilisateur est déjà identifié
897 gduche 83
					boolean identifie = ((JSONBoolean) reponse.get(3)).booleanValue();
772 jpm 84
 
85
					// Nous réinitialisons l'utilisateur
86
					utilisateur = new Utilisateur(id, identifie);
87
 
88
					GWT.log(utilisateur.toString(), null);
89
					vueARafraichir.rafraichir(utilisateur);
64 jpm 90
				}
772 jpm 91
			}
92
		});
64 jpm 93
	}
94
 
95
	/**
358 jp_milcent 96
	 * Méthode connectant un utilisateur à l'application.
64 jpm 97
	 * @param Utilisateur l'utilisateur courant.
98
	 */
772 jpm 99
	public void connecterUtilisateur() {
100
		String[] parametres = {utilisateur.getLogin(), utilisateur.getMotDePasse()};
65 jpm 101
 
772 jpm 102
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
103
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
104
			@Override
105
			public void surReponse(JSONValue responseValue) {
106
				if (responseValue.isArray() != null) {
107
					final JSONArray reponse = responseValue.isArray();
897 gduche 108
 
109
					//Ajout des informations de l'annuaire
110
					if (reponse.get(0).isObject() != null)	{
111
						utilisateur.setInfosAnnuaire(reponse.get(0).isObject());
112
					}
113
 
114
					//Ajout des informations licence
115
					if (reponse.get(1).isString() != null)	{
116
						utilisateur.setLicence(reponse.get(1).isString().stringValue());
117
					} else {
118
						utilisateur.setLicence("");
119
					}
120
 
772 jpm 121
					if (reponse.size() > 0) {
122
						// Identifiant de l'utilisateur ou identifiant de session si non identifié
897 gduche 123
						utilisateur.setId(((JSONString) reponse.get(2)).stringValue());
772 jpm 124
 
125
						// Drapeau levé si l'utilisateur est déjà identifié
126
						GWT.log(reponse.toString(), null);
897 gduche 127
						utilisateur.setIdentification(((JSONBoolean) reponse.get(3)).booleanValue());
772 jpm 128
 
129
						// Plus de deux valeurs, l'utilisateur est identifié nous récupérons des données supplémentaires
897 gduche 130
						if (reponse.size() > 4) {
772 jpm 131
							// Nom complet de l'utilisateur
897 gduche 132
							if (reponse.get(4).isString() != null) {
133
								utilisateur.setNomComplet(((JSONString) reponse.get(4)).stringValue());
132 jpm 134
							}
772 jpm 135
							// Prénom de l'utilisateur
897 gduche 136
							if (reponse.get(5).isString() != null) {
137
								utilisateur.setPrenom(((JSONString) reponse.get(5)).stringValue());
772 jpm 138
							}
897 gduche 139
 
772 jpm 140
							// Nom de l'utilisateur
897 gduche 141
							if (reponse.get(6).isString() != null) {
142
								utilisateur.setNom(((JSONString) reponse.get(6)).stringValue());
912 jpm 143
							}
897 gduche 144
 
912 jpm 145
							// Paramètres
146
							if (reponse.get(7).isString() != null) {
989 jpm 147
								Debug.log(((JSONString) reponse.get(7)).stringValue());
912 jpm 148
								utilisateur.setParametre(((JSONString) reponse.get(7)).stringValue());
149
							}
150
 
132 jpm 151
						}
772 jpm 152
						vueARafraichir.rafraichir(utilisateur);
358 jp_milcent 153
					}
64 jpm 154
				}
772 jpm 155
			}
156
		});
64 jpm 157
	}
897 gduche 158
 
159
	/*
160
	 * */
161
	public void accepterLicence()	{
162
		String[] parametres = {utilisateur.getLogin(), utilisateur.getMotDePasse(), utilisateur.getId()};
163
 
164
		final JsonRestRequestBuilder rb = UtilDAO.construireRequete(SERVICE_NOM, parametres);
165
		rb.envoyerRequete(null, new JsonRestRequestCallback() {
166
			@Override
167
			public void surReponse(JSONValue responseValue) {
168
				if (responseValue.isArray() != null) {
169
					final JSONArray reponse = responseValue.isArray();
170
					if (reponse.get(1).isString() != null)	{
171
						String licenceAcceptee = reponse.get(1).isString().stringValue();
172
						Information info = new Information("maj_licence");
173
						info.setDonnee(0, licenceAcceptee);
174
						vueARafraichir.rafraichir(info);
175
					}
176
				}
177
			}
178
		});
179
	}
180
}