Subversion Repositories eFlore/Applications.cel

Rev

Rev 676 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 aperonnet 1
package org.tela_botanica.client.modeles;
2
 
3
/**
4
 * Modele DAO, specifique, permettant la validation, l'acces aux donnees distantes et la présentation des donnees en retour
5
 *
6
 */
7
 
12 david 8
import org.tela_botanica.client.CarnetEnLigneModele;
9
import org.tela_botanica.client.interfaces.Rafraichissable;
2 aperonnet 10
 
33 jpm 11
import com.google.gwt.http.client.Request;
12
import com.google.gwt.http.client.RequestBuilder;
13
import com.google.gwt.http.client.RequestCallback;
14
import com.google.gwt.http.client.RequestException;
15
import com.google.gwt.http.client.Response;
2 aperonnet 16
import com.google.gwt.json.client.JSONArray;
17
import com.google.gwt.json.client.JSONBoolean;
18
import com.google.gwt.json.client.JSONParser;
19
import com.google.gwt.json.client.JSONString;
20
import com.google.gwt.json.client.JSONValue;
676 aurelien 21
import com.google.gwt.user.client.Window;
2 aperonnet 22
 
23
public class UtilisateurAsynchroneDAO {
24
 
12 david 25
 
26
 
27
 
2 aperonnet 28
	/**
12 david 29
	 * Le modèle associé au DAO
2 aperonnet 30
	 */
12 david 31
	private CarnetEnLigneModele carnetEnLigneModele = null ;
32
 
33
	/**
34
	 * Constructeur
35
	 */
36
 
37
	public UtilisateurAsynchroneDAO(CarnetEnLigneModele carnetEnLigneModele) {
38
 
39
		this.carnetEnLigneModele=carnetEnLigneModele;
40
 
2 aperonnet 41
	}
12 david 42
 
43
 
44
 
45
 
2 aperonnet 46
	/**
12 david 47
	 * Methode de classe d'appel du service gestion identification
48
	 * @param baseURL : URL du service
49
	 * @param retour : methode appelle en retour d'appel
2 aperonnet 50
	 */
12 david 51
 
52
	public void getEtatUtilisateur(final Rafraichissable r) {
5 aperonnet 53
 
2 aperonnet 54
		// Recherche identifiant utilisateur identifie
55
 
140 aurelien 56
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET,Configuration.getServiceBaseUrl() + "/User/") ;
33 jpm 57
 
58
		try {
59
 
60
			rb.sendRequest(null, new RequestCallback() {
2 aperonnet 61
 
33 jpm 62
				public void onError(Request request, Throwable exception) {
676 aurelien 63
 
2 aperonnet 64
				}
65
 
33 jpm 66
				public void onResponseReceived(Request request,
67
						Response response) {
68
 
676 aurelien 69
					if(response.getText().isEmpty()) {
70
						Window.alert("Impossible de contacter le serveur, veuillez vérifier la configuration du cel ou contacter un administrateur");
71
					} else {
72
 
73
						JSONValue jsonValue = JSONParser.parse(response.getText());
74
						JSONArray jsonArray;
140 aurelien 75
 
676 aurelien 76
						if ((jsonArray = jsonValue.isArray()) != null) {
77
							String identifiant = ((JSONString) jsonArray.get(0))
78
									.stringValue(); // Identifiant utilisateur ou
79
													// identifiant de session si non
80
													// identifie
81
							boolean identifie = ((JSONBoolean) jsonArray.get(1))
82
									.booleanValue(); // Drapeau leve si utilisateur
83
														// deja identifie
84
							boolean isAdmin = ((JSONBoolean) jsonArray.get(2))
85
							.booleanValue(); // Drapeau leve si utilisateur
86
												// est admin
87
 
88
							boolean licenceAcceptee = ((JSONBoolean) jsonArray.get(3))
89
							.booleanValue(); // Drapeau leve si utilisateur
90
												// a accepte licence
91
 
92
							Utilisateur utilisateur = new Utilisateur(identifiant, identifie, isAdmin);
93
							utilisateur.setLicenceAcceptee(licenceAcceptee);
94
 
95
							r.rafraichir(utilisateur,true);
96
						}
97
					}
33 jpm 98
				}
99
			}) ;
100
 
101
 
102
		} catch (RequestException e) {
103
 
104
 
105
		}
2 aperonnet 106
	}
107
 
108
 
12 david 109
 
110
	public void deconnecterUtilisateur(final Rafraichissable r, String user) {
111
 
140 aurelien 112
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, Configuration.getServiceBaseUrl()+ "/User/" + user) ;
33 jpm 113
 
114
		try {
115
 
116
			rb.sendRequest(null, new RequestCallback() {
2 aperonnet 117
 
33 jpm 118
				public void onError(Request request, Throwable exception) {
119
					// TODO Auto-generated method stub
120
 
121
				}
122
 
123
				public void onResponseReceived(Request request,
124
						Response response) {
125
 
126
					JSONValue jsonValue = JSONParser.parse(response.getText());
127
					JSONArray jsonArray;
128
					if ((jsonArray = jsonValue.isArray()) != null) {
129
						String identifiant = ((JSONString) jsonArray.get(0))
130
						.stringValue(); // Identifiant utilisateur ou
131
										// identifiant de session si non
132
										// identifie
133
						boolean identifie = ((JSONBoolean) jsonArray.get(1))
134
						.booleanValue(); // Drapeau leve si utilisateur
596 aurelien 135
 
33 jpm 136
											// deja identifie
12 david 137
 
596 aurelien 138
						Utilisateur utilisateur = new Utilisateur(identifiant, identifie);
139
						utilisateur.setLicenceAcceptee(false);
140
 
141
					r.rafraichir(utilisateur,true);
33 jpm 142
					}
143
				}
144
 
145
			}) ;
146
 
147
		} catch (RequestException e) {
148
 
149
 
150
		}
2 aperonnet 151
	}
152
 
153
 
12 david 154
 
155
	public void connecteUtilisateur (final Rafraichissable r, String login, String password) {
33 jpm 156
 
143 aurelien 157
		RequestBuilder rb = new RequestBuilder(RequestBuilder.GET,Configuration.getServiceBaseUrl() + "/User/" + login + "/" + password) ;
33 jpm 158
 
159
		try {
160
 
161
			rb.sendRequest(null, new RequestCallback() {
12 david 162
 
33 jpm 163
				public void onError(Request request, Throwable exception) {
164
					// TODO Auto-generated method stub
165
 
166
				}
2 aperonnet 167
 
33 jpm 168
				public void onResponseReceived(Request request,
169
						Response response) {
170
 
171
					JSONValue jsonValue = JSONParser.parse(response.getText());
172
					JSONArray jsonArray;
173
 
174
					if ((jsonArray = jsonValue.isArray()) != null) {
175
						String identifiant = ((JSONString) jsonArray.get(0))
176
						.stringValue(); // Identifiant utilisateur ou
177
										// identifiant de session si non
178
										// identifie
179
						boolean identifie = ((JSONBoolean) jsonArray.get(1))
180
						.booleanValue(); // Drapeau leve si utilisateur
181
											// deja identifie
143 aurelien 182
						boolean isAdmin = ((JSONBoolean) jsonArray.get(2))
183
						.booleanValue(); // Drapeau leve si utilisateur
184
											// est admin
12 david 185
 
596 aurelien 186
						boolean licenceAcceptee = ((JSONBoolean) jsonArray.get(3))
187
						.booleanValue(); // Drapeau leve si utilisateur
188
											// a accepte licence
189
 
190
						Utilisateur utilisateur = new Utilisateur(identifiant, identifie, isAdmin);
191
						utilisateur.setLicenceAcceptee(licenceAcceptee);
192
 
2 aperonnet 193
 
596 aurelien 194
						r.rafraichir(utilisateur,true);
33 jpm 195
					}
196
				}
197
 
198
 
199
			}) ;
200
 
201
		} catch (RequestException e) {
202
 
203
			e.printStackTrace() ;
204
		}
2 aperonnet 205
	}
206
 
596 aurelien 207
	public void accepterLicence(String identifiantUtilisateur) {
208
 
209
		RequestBuilder rb = new RequestBuilder(RequestBuilder.POST,Configuration.getServiceBaseUrl() + "/LicenceUtilisateur/"+identifiantUtilisateur) ;
210
 
211
		try {
212
 
213
			String postData = "acceptation_licence=1";
214
 
215
			rb.sendRequest(postData, new RequestCallback() {
12 david 216
 
596 aurelien 217
				public void onError(Request request, Throwable exception) {
218
					// TODO Auto-generated method stub
219
 
220
				}
12 david 221
 
596 aurelien 222
				public void onResponseReceived(Request request,
223
						Response response) {
224
 
225
				}
226
 
227
 
228
			}) ;
229
 
230
		} catch (RequestException e) {
231
 
232
			e.printStackTrace() ;
233
		}
234
 
235
	}
12 david 236
 
596 aurelien 237
 
238
 
239
 
2 aperonnet 240
}