1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.portal.business.user;
35
36 import fr.paris.lutece.portal.business.rbac.AdminRole;
37 import fr.paris.lutece.portal.business.right.Right;
38 import fr.paris.lutece.portal.business.user.authentication.LuteceDefaultAdminUser;
39 import fr.paris.lutece.util.password.IPassword;
40 import fr.paris.lutece.util.password.IPasswordFactory;
41 import fr.paris.lutece.util.sql.DAOUtil;
42
43 import java.sql.Timestamp;
44 import java.util.ArrayList;
45 import java.util.Collection;
46 import java.util.HashMap;
47 import java.util.List;
48 import java.util.Locale;
49 import java.util.Map;
50
51 import javax.inject.Inject;
52
53
54
55
56
57 public class AdminUserDAO implements IAdminUserDAO
58 {
59
60 private static final String CONSTANT_AND_STATUS = " AND status = ?";
61 private static final String CONSTANT_AND_USER_LEVEL = " AND level_user = ?";
62 private static final String CONSTANT_ORDER_BY_LAST_NAME = " ORDER BY last_name ";
63 private static final String CONSTANT_PERCENT = "%";
64 private static final String SQL_QUERY_NEWPK = "SELECT max( id_user ) FROM core_admin_user ";
65 private static final String SQL_QUERY_INSERT = "INSERT INTO core_admin_user ( id_user , access_code, last_name , first_name, email, status, locale, level_user, accessibility_mode, password_max_valid_date, account_max_valid_date ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) ";
66 private static final String SQL_QUERY_SELECTALL = "SELECT id_user , access_code, last_name , first_name, email, status, locale, level_user, accessibility_mode, reset_password, password_max_valid_date, account_max_valid_date, last_login, workgroup_key FROM core_admin_user ORDER BY last_name ";
67 private static final String SQL_QUERY_SELECT_USER_FROM_USER_ID = "SELECT id_user , access_code, last_name , first_name, email, status, password, locale, level_user, reset_password, accessibility_mode, password_max_valid_date, account_max_valid_date, workgroup_key FROM core_admin_user WHERE id_user = ? ";
68 private static final String SQL_QUERY_SELECT_USER_FROM_ACCESS_CODE = "SELECT id_user, access_code, last_name, first_name, email, status, locale, level_user, reset_password, accessibility_mode, password_max_valid_date, last_login FROM core_admin_user WHERE access_code = ? ";
69 private static final String SQL_QUERY_SELECT_USER_FROM_EMAIL = "SELECT access_code FROM core_admin_user WHERE email = ? ";
70 private static final String SQL_QUERY_SELECT_RIGHTS_FROM_USER_ID = " SELECT a.id_right , a.name, a.admin_url , a.description , a.plugin_name, a.id_feature_group, a.icon_url, a.level_right, a.documentation_url, a.id_order " +
71 " FROM core_admin_right a , core_user_right b " + " WHERE a.id_right = b.id_right " + " AND b.id_user = ? " +
72 " ORDER BY a.id_order ASC, a.id_right ASC ";
73 private static final String SQL_QUERY_UPDATE = "UPDATE core_admin_user SET access_code = ? , last_name = ? , first_name = ?, email = ?, status = ?, locale = ?, reset_password = ?, accessibility_mode = ?, password_max_valid_date = ? WHERE id_user = ? ";
74 private static final String SQL_QUERY_DELETE = "DELETE FROM core_admin_user WHERE id_user = ? ";
75 private static final String SQL_QUERY_INSERT_USER_RIGHT = "INSERT INTO core_user_right ( id_right, id_user ) VALUES ( ? , ? ) ";
76 private static final String SQL_QUERY_DELETE_ALL_USER_RIGHTS = "DELETE FROM core_user_right WHERE id_user = ? ";
77 private static final String SQL_QUERY_SELECT_ROLES_FROM_USER_ID = " SELECT a.role_key , a.role_description " +
78 " FROM core_admin_role a , core_user_role b WHERE a.role_key = b.role_key " +
79 " AND b.id_user = ? ORDER BY a.role_key ";
80 private static final String SQL_QUERY_INSERT_USER_ROLE = " INSERT INTO core_user_role ( role_key, id_user ) VALUES ( ? , ? ) ";
81 private static final String SQL_QUERY_DELETE_ALL_USER_ROLES = " DELETE FROM core_user_role WHERE id_user = ? ";
82 private static final String SQL_CHECK_ROLE_ATTRIBUTED = " SELECT id_user FROM core_user_role WHERE role_key = ?";
83 private static final String SQL_CHECK_ACCESS_CODE_IN_USE = " SELECT id_user FROM core_admin_user WHERE access_code = ?";
84 private static final String SQL_CHECK_EMAIL_IN_USE = " SELECT id_user FROM core_admin_user WHERE email = ?";
85 private static final String SQL_QUERY_INSERT_DEFAULT_USER = " INSERT INTO core_admin_user ( id_user, access_code, last_name, first_name, email, status, password, locale, level_user, accessibility_mode, reset_password, password_max_valid_date, account_max_valid_date, last_login, workgroup_key ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) ";
86 private static final String SQL_QUERY_UPDATE_DEFAULT_USER = " UPDATE core_admin_user SET access_code = ?, last_name = ?, first_name = ?, email = ?, status = ?, password = ?, locale = ?, reset_password = ?, accessibility_mode = ?, password_max_valid_date = ?, workgroup_key = ? WHERE id_user = ? ";
87 private static final String SQL_QUERY_SELECT_USERS_ID_BY_ROLES = " SELECT a.id_user , a.access_code, a.last_name , a.first_name, a.email, a.status, a.locale, a.accessibility_mode, a.password_max_valid_date " +
88 " FROM core_admin_user a, core_user_role b WHERE a.id_user = b.id_user AND b.role_key = ? ";
89 private static final String SQL_QUERY_SELECT_USER_RIGHTS_OWN = " SELECT DISTINCT b.id_right FROM core_admin_right a , core_user_right b WHERE b.id_user = ? and a.id_right = b.id_right and a.level_right >= ?";
90 private static final String SQL_QUERY_SELECT_USER_RIGHTS_DELEGATED = " SELECT DISTINCT b.id_right FROM core_admin_right a , core_user_right b WHERE b.id_user = ? and a.id_right = b.id_right and a.level_right < ?";
91 private static final String SQL_QUERY_DELETE_USER_RIGHTS = " DELETE FROM core_user_right WHERE id_user = ? and id_right = ?";
92 private static final String SQL_QUERY_SELECT_USERS_BY_LEVEL = " SELECT a.id_user, a.access_code, a.last_name, a.first_name, a.email, a.status, a.locale, a.accessibility_mode " +
93 " FROM core_admin_user a WHERE a.level_user = ? ";
94 private static final String SQL_QUERY_UPDATE_USERS_ROLE = "UPDATE core_user_role SET role_key = ? WHERE role_key = ?";
95 private static final String SQL_QUERY_SELECT_USER_ROLE = " SELECT id_user FROM core_user_role WHERE id_user = ? AND role_key = ? ";
96 private static final String SQL_QUERY_DELETE_ROLE_FOR_USER = " DELETE FROM core_user_role WHERE id_user = ? AND role_key = ? ";
97 private static final String SQL_QUERY_SELECT_USER_FROM_SEARCH = " SELECT id_user, access_code, last_name, first_name, email, status, locale, level_user, accessibility_mode " +
98 " FROM core_admin_user WHERE access_code LIKE ? AND last_name LIKE ? AND email LIKE ? ";
99 private static final String SQL_QUERY_SELECT_USERS_BY_RIGHT = " SELECT u.id_user , u.access_code, u.last_name , u.first_name, u.email, u.status, u.locale, u.level_user, u.accessibility_mode " +
100 " FROM core_admin_user u INNER JOIN core_user_right r ON u.id_user = r.id_user WHERE r.id_right = ? ";
101 private static final String SQL_QUERY_SELECT_USER_RIGHT = " SELECT id_user FROM core_user_right WHERE id_user = ? AND id_right = ? ";
102 private static final String SQL_SELECT_USER_PASSWORD_HISTORY = "SELECT password FROM core_user_password_history WHERE id_user = ? ORDER BY date_password_change desc";
103 private static final String SQL_COUNT_USER_PASSWORD_HISTORY = "SELECT COUNT(*) FROM core_user_password_history WHERE id_user = ? AND date_password_change > ?";
104 private static final String SQL_INSERT_PASSWORD_HISTORY = "INSERT INTO core_user_password_history (id_user, password) VALUES ( ?, ? ) ";
105 private static final String SQL_DELETE_PASSWORD_HISTORY = "DELETE FROM core_user_password_history WHERE id_user = ?";
106 private static final String SQL_SELECT_ANONYMIZATION_STATUS_USER_FILED = "SELECT field_name, anonymize from core_admin_user_anonymize_field";
107 private static final String SQL_UPDATE_ANONYMIZATION_STATUS_USER_FILED = "UPDATE core_admin_user_anonymize_field SET anonymize = ? WHERE field_name = ? ";
108 private static final String SQL_QUERY_SELECT_EXPIRED_USER_ID = "SELECT id_user FROM core_admin_user WHERE status = ?";
109 private static final String SQL_QUERY_SELECT_EXPIRED_LIFE_TIME_USER_ID = "SELECT id_user FROM core_admin_user WHERE account_max_valid_date < ? and status < ? ";
110 private static final String SQL_QUERY_SELECT_USER_ID_FIRST_ALERT = "SELECT id_user FROM core_admin_user WHERE nb_alerts_sent = 0 and status < ? and account_max_valid_date < ? ";
111 private static final String SQL_QUERY_SELECT_USER_ID_OTHER_ALERT = "SELECT id_user FROM core_admin_user " +
112 "WHERE nb_alerts_sent > 0 and nb_alerts_sent <= ? and status < ? and (account_max_valid_date + nb_alerts_sent * ?) < ? ";
113 private static final String SQL_QUERY_SELECT_USER_ID_PASSWORD_EXPIRED = " SELECT id_user FROM core_admin_user WHERE password_max_valid_date < ? AND reset_password = 0 ";
114 private static final String SQL_QUERY_UPDATE_STATUS = " UPDATE core_admin_user SET status = ? WHERE id_user IN ( ";
115 private static final String SQL_QUERY_UPDATE_NB_ALERT = " UPDATE core_admin_user SET nb_alerts_sent = nb_alerts_sent + 1 WHERE id_user IN ( ";
116 private static final String SQL_QUERY_UPDATE_RESET_PASSWORD_LIST_ID = " UPDATE core_admin_user SET reset_password = 1 WHERE id_user IN ( ";
117 private static final String SQL_QUERY_UPDATE_REACTIVATE_ACCOUNT = " UPDATE core_admin_user SET nb_alerts_sent = 0, account_max_valid_date = ? WHERE id_user = ? ";
118 private static final String SQL_QUERY_UPDATE_DATE_LAST_LOGIN = " UPDATE core_admin_user SET last_login = ? WHERE id_user = ? ";
119 private static final String CONSTANT_CLOSE_PARENTHESIS = " ) ";
120 private static final String CONSTANT_COMMA = ", ";
121
122 @Inject
123 private IPasswordFactory _passwordFactory;
124
125
126
127
128 @Override
129 public AdminUser load( int nUserId )
130 {
131 AdminUser user = null;
132 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_USER_FROM_USER_ID );
133 daoUtil.setInt( 1, nUserId );
134 daoUtil.executeQuery( );
135
136 if ( daoUtil.next( ) )
137 {
138 user = new AdminUser( );
139 user.setUserId( daoUtil.getInt( 1 ) );
140 user.setAccessCode( daoUtil.getString( 2 ) );
141 user.setLastName( daoUtil.getString( 3 ) );
142 user.setFirstName( daoUtil.getString( 4 ) );
143 user.setEmail( daoUtil.getString( 5 ) );
144 user.setStatus( daoUtil.getInt( 6 ) );
145 user.setLocale( new Locale( daoUtil.getString( 8 ) ) );
146 user.setUserLevel( daoUtil.getInt( 9 ) );
147 user.setPasswordReset( daoUtil.getBoolean( 10 ) );
148 user.setAccessibilityMode( daoUtil.getBoolean( 11 ) );
149 user.setPasswordMaxValidDate( daoUtil.getTimestamp( 12 ) );
150
151 long accountTime = daoUtil.getLong( 13 );
152
153 if ( accountTime > 0 )
154 {
155 user.setAccountMaxValidDate( new Timestamp( accountTime ) );
156 }
157 }
158
159 daoUtil.free( );
160
161 return user;
162 }
163
164
165
166
167 @Override
168 public AdminUser selectUserByAccessCode( String strUserAccessCode )
169 {
170 AdminUser user = null;
171 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_USER_FROM_ACCESS_CODE );
172 daoUtil.setString( 1, strUserAccessCode );
173 daoUtil.executeQuery( );
174
175 if ( daoUtil.next( ) )
176 {
177 user = new AdminUser( );
178 user.setUserId( daoUtil.getInt( 1 ) );
179 user.setAccessCode( daoUtil.getString( 2 ) );
180 user.setLastName( daoUtil.getString( 3 ) );
181 user.setFirstName( daoUtil.getString( 4 ) );
182 user.setEmail( daoUtil.getString( 5 ) );
183 user.setStatus( daoUtil.getInt( 6 ) );
184 user.setLocale( new Locale( daoUtil.getString( 7 ) ) );
185 user.setUserLevel( daoUtil.getInt( 8 ) );
186 user.setPasswordReset( daoUtil.getBoolean( 9 ) );
187 user.setAccessibilityMode( daoUtil.getBoolean( 10 ) );
188 user.setPasswordMaxValidDate( daoUtil.getTimestamp( 11 ) );
189
190 Timestamp dateLastLogin = daoUtil.getTimestamp( 12 );
191
192 if ( ( dateLastLogin != null ) && !dateLastLogin.equals( AdminUser.DEFAULT_DATE_LAST_LOGIN ) )
193 {
194 user.setDateLastLogin( dateLastLogin );
195 }
196 }
197
198 daoUtil.free( );
199
200 return user;
201 }
202
203
204
205
206 @Override
207 public String selectUserByEmail( String strEmail )
208 {
209 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_USER_FROM_EMAIL );
210 daoUtil.setString( 1, strEmail );
211 daoUtil.executeQuery( );
212
213 String strAccessCode = null;
214
215 if ( daoUtil.next( ) )
216 {
217 strAccessCode = daoUtil.getString( 1 );
218 }
219
220 daoUtil.free( );
221
222 return strAccessCode;
223 }
224
225
226
227
228 @Override
229 public Collection<AdminUser> selectUserList( )
230 {
231 Collection<AdminUser> userList = new ArrayList<AdminUser>( );
232 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECTALL );
233 daoUtil.executeQuery( );
234
235 while ( daoUtil.next( ) )
236 {
237 AdminUser user = new AdminUser( );
238 user.setUserId( daoUtil.getInt( 1 ) );
239 user.setAccessCode( daoUtil.getString( 2 ) );
240 user.setLastName( daoUtil.getString( 3 ) );
241 user.setFirstName( daoUtil.getString( 4 ) );
242 user.setEmail( daoUtil.getString( 5 ) );
243 user.setStatus( daoUtil.getInt( 6 ) );
244 user.setLocale( new Locale( daoUtil.getString( 7 ) ) );
245 user.setUserLevel( daoUtil.getInt( 8 ) );
246 user.setAccessibilityMode( daoUtil.getBoolean( 9 ) );
247 user.setPasswordReset( daoUtil.getBoolean( 10 ) );
248 user.setPasswordMaxValidDate( daoUtil.getTimestamp( 11 ) );
249
250 long accountTime = daoUtil.getLong( 12 );
251
252 if ( accountTime > 0 )
253 {
254 user.setAccountMaxValidDate( new Timestamp( accountTime ) );
255 }
256
257 Timestamp dateLastLogin = daoUtil.getTimestamp( 13 );
258
259 if ( ( dateLastLogin != null ) && !dateLastLogin.equals( AdminUser.DEFAULT_DATE_LAST_LOGIN ) )
260 {
261 user.setDateLastLogin( dateLastLogin );
262 }
263
264 user.setWorkgroupKey( daoUtil.getString( 14 ) );
265 userList.add( user );
266 }
267
268 daoUtil.free( );
269
270 return userList;
271 }
272
273
274
275
276 @Override
277 public int newPrimaryKey( )
278 {
279 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_NEWPK );
280 daoUtil.executeQuery( );
281
282 int nKey;
283
284 if ( !daoUtil.next( ) )
285 {
286
287 nKey = 1;
288 }
289
290 nKey = daoUtil.getInt( 1 ) + 1;
291
292 daoUtil.free( );
293
294 return nKey;
295 }
296
297
298
299
300 @Override
301 public synchronized void insert( AdminUser user )
302 {
303 user.setUserId( newPrimaryKey( ) );
304
305 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_INSERT );
306
307 daoUtil.setInt( 1, user.getUserId( ) );
308 daoUtil.setString( 2, user.getAccessCode( ) );
309 daoUtil.setString( 3, user.getLastName( ) );
310 daoUtil.setString( 4, user.getFirstName( ) );
311 daoUtil.setString( 5, user.getEmail( ) );
312 daoUtil.setInt( 6, user.getStatus( ) );
313 daoUtil.setString( 7, user.getLocale( ).toString( ) );
314 daoUtil.setInt( 8, user.getUserLevel( ) );
315 daoUtil.setBoolean( 9, user.getAccessibilityMode( ) );
316 daoUtil.setTimestamp( 10, user.getPasswordMaxValidDate( ) );
317
318 if ( user.getAccountMaxValidDate( ) == null )
319 {
320 daoUtil.setLongNull( 11 );
321 }
322 else
323 {
324 daoUtil.setLong( 11, user.getAccountMaxValidDate( ).getTime( ) );
325 }
326
327 daoUtil.executeUpdate( );
328 daoUtil.free( );
329 }
330
331
332
333
334 @Override
335 public void store( AdminUser user )
336 {
337 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_UPDATE );
338
339 daoUtil.setString( 1, user.getAccessCode( ) );
340 daoUtil.setString( 2, user.getLastName( ) );
341 daoUtil.setString( 3, user.getFirstName( ) );
342 daoUtil.setString( 4, user.getEmail( ) );
343 daoUtil.setInt( 5, user.getStatus( ) );
344 daoUtil.setString( 6, user.getLocale( ).toString( ) );
345 daoUtil.setBoolean( 7, user.isPasswordReset( ) );
346 daoUtil.setBoolean( 8, user.getAccessibilityMode( ) );
347 daoUtil.setTimestamp( 9, user.getPasswordMaxValidDate( ) );
348
349 daoUtil.setInt( 10, user.getUserId( ) );
350
351 daoUtil.executeUpdate( );
352 daoUtil.free( );
353 }
354
355
356
357
358 @Override
359 public void delete( int nUserId )
360 {
361 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_DELETE );
362 daoUtil.setInt( 1, nUserId );
363 daoUtil.executeUpdate( );
364 daoUtil.free( );
365 }
366
367
368
369
370 @Override
371 public Map<String, Right> selectRightsListForUser( int nUserId )
372 {
373 Map<String, Right> rightsMap = new HashMap<String, Right>( );
374
375 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_RIGHTS_FROM_USER_ID );
376 daoUtil.setInt( 1, nUserId );
377 daoUtil.executeQuery( );
378
379 while ( daoUtil.next( ) )
380 {
381 Right right = new Right( );
382 right.setId( daoUtil.getString( 1 ) );
383 right.setNameKey( daoUtil.getString( 2 ) );
384 right.setUrl( daoUtil.getString( 3 ) );
385 right.setDescriptionKey( daoUtil.getString( 4 ) );
386 right.setPluginName( daoUtil.getString( 5 ) );
387 right.setFeatureGroup( daoUtil.getString( 6 ) );
388 right.setIconUrl( daoUtil.getString( 7 ) );
389 right.setLevel( daoUtil.getInt( 8 ) );
390 right.setDocumentationUrl( daoUtil.getString( 9 ) );
391 right.setOrder( daoUtil.getInt( 10 ) );
392 rightsMap.put( right.getId( ), right );
393 }
394
395 daoUtil.free( );
396
397 return rightsMap;
398 }
399
400
401
402
403 @Override
404 public void insertRightsListForUser( int nUserId, String strRightId )
405 {
406 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_INSERT_USER_RIGHT );
407 daoUtil.setString( 1, strRightId );
408 daoUtil.setInt( 2, nUserId );
409 daoUtil.executeUpdate( );
410 daoUtil.free( );
411 }
412
413
414
415
416 @Override
417 public void deleteAllRightsForUser( int nUserId )
418 {
419 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_DELETE_ALL_USER_RIGHTS );
420 daoUtil.setInt( 1, nUserId );
421 daoUtil.executeUpdate( );
422 daoUtil.free( );
423 }
424
425
426
427
428 @Override
429 public Map<String, AdminRole> selectRolesListForUser( int nUserId )
430 {
431 Map<String, AdminRole> rolesMap = new HashMap<String, AdminRole>( );
432
433 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_ROLES_FROM_USER_ID );
434 daoUtil.setInt( 1, nUserId );
435 daoUtil.executeQuery( );
436
437 while ( daoUtil.next( ) )
438 {
439 AdminRole role = new AdminRole( );
440 role.setKey( daoUtil.getString( 1 ) );
441 role.setDescription( daoUtil.getString( 2 ) );
442
443 rolesMap.put( role.getKey( ), role );
444 }
445
446 daoUtil.free( );
447
448 return rolesMap;
449 }
450
451
452
453
454 @Override
455 public void insertRolesListForUser( int nUserId, String strRoleKey )
456 {
457 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_INSERT_USER_ROLE );
458 daoUtil.setString( 1, strRoleKey );
459 daoUtil.setInt( 2, nUserId );
460 daoUtil.executeUpdate( );
461 daoUtil.free( );
462 }
463
464
465
466
467 @Override
468 public void deleteAllRolesForUser( int nUserId )
469 {
470 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_DELETE_ALL_USER_ROLES );
471 daoUtil.setInt( 1, nUserId );
472 daoUtil.executeUpdate( );
473 daoUtil.free( );
474 }
475
476
477
478
479 @Override
480 public boolean checkRoleAttributed( String strRoleKey )
481 {
482 boolean bInUse = false;
483
484 DAOUtil daoUtil = new DAOUtil( SQL_CHECK_ROLE_ATTRIBUTED );
485 daoUtil.setString( 1, strRoleKey );
486 daoUtil.executeQuery( );
487
488 if ( daoUtil.next( ) )
489 {
490 bInUse = true;
491 }
492
493 daoUtil.free( );
494
495 return bInUse;
496 }
497
498
499
500
501 @Override
502 public int checkAccessCodeAlreadyInUse( String strAccessCode )
503 {
504 int nIdUser = -1;
505 DAOUtil daoUtil = new DAOUtil( SQL_CHECK_ACCESS_CODE_IN_USE );
506 daoUtil.setString( 1, strAccessCode );
507 daoUtil.executeQuery( );
508
509 if ( daoUtil.next( ) )
510 {
511 nIdUser = daoUtil.getInt( 1 );
512 }
513
514 daoUtil.free( );
515
516 return nIdUser;
517 }
518
519
520
521
522 @Override
523 public int checkEmailAlreadyInUse( String strEmail )
524 {
525 int nIdUser = -1;
526 DAOUtil daoUtil = new DAOUtil( SQL_CHECK_EMAIL_IN_USE );
527 daoUtil.setString( 1, strEmail );
528 daoUtil.executeQuery( );
529
530 if ( daoUtil.next( ) )
531 {
532 nIdUser = daoUtil.getInt( 1 );
533 }
534
535 daoUtil.free( );
536
537 return nIdUser;
538 }
539
540
541
542
543
544
545 @Override
546 public void insert( LuteceDefaultAdminUser user )
547 {
548 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_INSERT_DEFAULT_USER );
549
550 user.setUserId( newPrimaryKey( ) );
551 daoUtil.setInt( 1, user.getUserId( ) );
552 daoUtil.setString( 2, user.getAccessCode( ) );
553 daoUtil.setString( 3, user.getLastName( ) );
554 daoUtil.setString( 4, user.getFirstName( ) );
555 daoUtil.setString( 5, user.getEmail( ) );
556 daoUtil.setInt( 6, user.getStatus( ) );
557 daoUtil.setString( 7, user.getPassword( ).getStorableRepresentation( ) );
558 daoUtil.setString( 8, user.getLocale( ).toString( ) );
559 daoUtil.setInt( 9, user.getUserLevel( ) );
560 daoUtil.setBoolean( 10, user.getAccessibilityMode( ) );
561 daoUtil.setBoolean( 11, user.isPasswordReset( ) );
562 daoUtil.setTimestamp( 12, user.getPasswordMaxValidDate( ) );
563
564 if ( user.getAccountMaxValidDate( ) == null )
565 {
566 daoUtil.setLongNull( 13 );
567 }
568 else
569 {
570 daoUtil.setLong( 13, user.getAccountMaxValidDate( ).getTime( ) );
571 }
572
573 daoUtil.setTimestamp( 14, user.getDateLastLogin( ) );
574 daoUtil.setString( 15, user.getWorkgroupKey( ) );
575 daoUtil.executeUpdate( );
576 daoUtil.free( );
577 }
578
579
580
581
582 @Override
583 public void store( LuteceDefaultAdminUser user )
584 {
585 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_UPDATE_DEFAULT_USER );
586
587 daoUtil.setString( 1, user.getAccessCode( ) );
588 daoUtil.setString( 2, user.getLastName( ) );
589 daoUtil.setString( 3, user.getFirstName( ) );
590 daoUtil.setString( 4, user.getEmail( ) );
591 daoUtil.setInt( 5, user.getStatus( ) );
592 daoUtil.setString( 6, user.getPassword( ).getStorableRepresentation( ) );
593 daoUtil.setString( 7, user.getLocale( ).toString( ) );
594 daoUtil.setBoolean( 8, user.isPasswordReset( ) );
595 daoUtil.setBoolean( 9, user.getAccessibilityMode( ) );
596 daoUtil.setTimestamp( 10, user.getPasswordMaxValidDate( ) );
597 daoUtil.setString( 11, user.getWorkgroupKey( ) );
598
599 daoUtil.setInt( 12, user.getUserId( ) );
600
601 daoUtil.executeUpdate( );
602 daoUtil.free( );
603 }
604
605
606
607
608 @Override
609 public LuteceDefaultAdminUser loadDefaultAdminUser( int nUserId )
610 {
611 LuteceDefaultAdminUser user = new LuteceDefaultAdminUser( );
612 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_USER_FROM_USER_ID );
613 daoUtil.setInt( 1, nUserId );
614 daoUtil.executeQuery( );
615
616 try
617 {
618 if ( daoUtil.next( ) )
619 {
620 user.setUserId( daoUtil.getInt( 1 ) );
621 user.setAccessCode( daoUtil.getString( 2 ) );
622 user.setLastName( daoUtil.getString( 3 ) );
623 user.setFirstName( daoUtil.getString( 4 ) );
624 user.setEmail( daoUtil.getString( 5 ) );
625 user.setStatus( daoUtil.getInt( 6 ) );
626 user.setPassword( _passwordFactory.getPassword( daoUtil.getString( 7 ) ) );
627
628 Locale locale = new Locale( daoUtil.getString( 8 ) );
629 user.setLocale( locale );
630 user.setUserLevel( daoUtil.getInt( 9 ) );
631 user.setPasswordReset( daoUtil.getBoolean( 10 ) );
632 user.setAccessibilityMode( daoUtil.getBoolean( 11 ) );
633 user.setWorkgroupKey( daoUtil.getString( 14 ) );
634 }
635 } finally
636 {
637 daoUtil.free( );
638 }
639
640 return user;
641 }
642
643
644
645
646 @Override
647 public Collection<AdminUser> selectUsersByRole( String strRoleKey )
648 {
649 Collection<AdminUser> userList = new ArrayList<AdminUser>( );
650 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_USERS_ID_BY_ROLES );
651 daoUtil.setString( 1, strRoleKey );
652 daoUtil.executeQuery( );
653
654 while ( daoUtil.next( ) )
655 {
656 AdminUser user = new AdminUser( );
657 user.setUserId( daoUtil.getInt( 1 ) );
658 user.setAccessCode( daoUtil.getString( 2 ) );
659 user.setLastName( daoUtil.getString( 3 ) );
660 user.setFirstName( daoUtil.getString( 4 ) );
661 user.setEmail( daoUtil.getString( 5 ) );
662 user.setStatus( daoUtil.getInt( 6 ) );
663 user.setLocale( new Locale( daoUtil.getString( 7 ) ) );
664 user.setAccessibilityMode( daoUtil.getBoolean( 8 ) );
665 user.setPasswordMaxValidDate( daoUtil.getTimestamp( 9 ) );
666 userList.add( user );
667 }
668
669 daoUtil.free( );
670
671 return userList;
672 }
673
674
675
676
677 @Override
678 public Collection<AdminUser> selectUsersByLevel( int nIdLevel )
679 {
680 Collection<AdminUser> userList = new ArrayList<AdminUser>( );
681 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_USERS_BY_LEVEL );
682 daoUtil.setInt( 1, nIdLevel );
683 daoUtil.executeQuery( );
684
685 while ( daoUtil.next( ) )
686 {
687 AdminUser user = new AdminUser( );
688 user.setUserId( daoUtil.getInt( 1 ) );
689 user.setAccessCode( daoUtil.getString( 2 ) );
690 user.setLastName( daoUtil.getString( 3 ) );
691 user.setFirstName( daoUtil.getString( 4 ) );
692 user.setEmail( daoUtil.getString( 5 ) );
693 user.setStatus( daoUtil.getInt( 6 ) );
694 user.setLocale( new Locale( daoUtil.getString( 7 ) ) );
695 user.setAccessibilityMode( daoUtil.getBoolean( 8 ) );
696 userList.add( user );
697 }
698
699 daoUtil.free( );
700
701 return userList;
702 }
703
704
705
706
707
708
709
710
711
712 private Collection<String> selectIdRights( int nUserId, int nUserLevel, boolean bDelegated )
713 {
714 String strSqlQuery = bDelegated ? SQL_QUERY_SELECT_USER_RIGHTS_DELEGATED : SQL_QUERY_SELECT_USER_RIGHTS_OWN;
715 Collection<String> idRightList = new ArrayList<String>( );
716 DAOUtil daoUtil = new DAOUtil( strSqlQuery );
717 daoUtil.setInt( 1, nUserId );
718 daoUtil.setInt( 2, nUserLevel );
719 daoUtil.executeQuery( );
720
721 while ( daoUtil.next( ) )
722 {
723 idRightList.add( daoUtil.getString( 1 ) );
724 }
725
726 daoUtil.free( );
727
728 return idRightList;
729 }
730
731
732
733
734
735
736
737 private void deleteRightsForUser( int nUserId, Collection<String> idRightList )
738 {
739 for ( String strIdRight : idRightList )
740 {
741 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_DELETE_USER_RIGHTS );
742 daoUtil.setInt( 1, nUserId );
743 daoUtil.setString( 2, strIdRight );
744 daoUtil.executeUpdate( );
745 daoUtil.free( );
746 }
747 }
748
749
750
751
752 @Override
753 public void deleteAllOwnRightsForUser( int nUserId, int nUserLevel )
754 {
755 Collection<String> idRightList = selectIdRights( nUserId, nUserLevel, false );
756
757 deleteRightsForUser( nUserId, idRightList );
758 }
759
760
761
762
763 @Override
764 public void deleteAllDelegatedRightsForUser( int nUserId, int nUserLevel )
765 {
766 Collection<String> idRightList = selectIdRights( nUserId, nUserLevel, true );
767
768 deleteRightsForUser( nUserId, idRightList );
769 }
770
771
772
773
774 @Override
775 public void storeUsersRole( String strOldRoleKey, AdminRole role )
776 {
777 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_UPDATE_USERS_ROLE );
778 daoUtil.setString( 1, role.getKey( ) );
779 daoUtil.setString( 2, strOldRoleKey );
780
781 daoUtil.executeUpdate( );
782 daoUtil.free( );
783 }
784
785
786
787
788 @Override
789 public boolean hasRole( int nUserId, String strRoleKey )
790 {
791 boolean bHasRole = false;
792 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_USER_ROLE );
793 daoUtil.setInt( 1, nUserId );
794 daoUtil.setString( 2, strRoleKey );
795 daoUtil.executeQuery( );
796
797 if ( daoUtil.next( ) )
798 {
799 bHasRole = true;
800 }
801
802 daoUtil.free( );
803
804 return bHasRole;
805 }
806
807
808
809
810 @Override
811 public void deleteRoleForUser( int nUserId, String strRoleKey )
812 {
813 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_DELETE_ROLE_FOR_USER );
814 daoUtil.setInt( 1, nUserId );
815 daoUtil.setString( 2, strRoleKey );
816 daoUtil.executeUpdate( );
817 daoUtil.free( );
818 }
819
820
821
822
823 @Override
824 public Collection<AdminUser> selectUsersByFilter( AdminUserFilter auFilter )
825 {
826 Collection<AdminUser> userList = new ArrayList<AdminUser>( );
827 DAOUtil daoUtil;
828
829 String query = SQL_QUERY_SELECT_USER_FROM_SEARCH;
830
831 if ( auFilter.getStatus( ) != -1 )
832 {
833 query += CONSTANT_AND_STATUS;
834 }
835
836 if ( auFilter.getUserLevel( ) != -1 )
837 {
838 query += CONSTANT_AND_USER_LEVEL;
839 }
840
841 query += CONSTANT_ORDER_BY_LAST_NAME;
842
843 daoUtil = new DAOUtil( query );
844 daoUtil.setString( 1, CONSTANT_PERCENT + auFilter.getAccessCode( ) + CONSTANT_PERCENT );
845 daoUtil.setString( 2, CONSTANT_PERCENT + auFilter.getLastName( ) + CONSTANT_PERCENT );
846 daoUtil.setString( 3, CONSTANT_PERCENT + auFilter.getEmail( ) + CONSTANT_PERCENT );
847
848 if ( auFilter.getStatus( ) != -1 )
849 {
850 daoUtil.setInt( 4, auFilter.getStatus( ) );
851
852 if ( auFilter.getUserLevel( ) != -1 )
853 {
854 daoUtil.setInt( 5, auFilter.getUserLevel( ) );
855 }
856 }
857 else
858 {
859 if ( auFilter.getUserLevel( ) != -1 )
860 {
861 daoUtil.setInt( 4, auFilter.getUserLevel( ) );
862 }
863 }
864
865 daoUtil.executeQuery( );
866
867 while ( daoUtil.next( ) )
868 {
869 AdminUser user = new AdminUser( );
870 user.setUserId( daoUtil.getInt( 1 ) );
871 user.setAccessCode( daoUtil.getString( 2 ) );
872 user.setLastName( daoUtil.getString( 3 ) );
873 user.setFirstName( daoUtil.getString( 4 ) );
874 user.setEmail( daoUtil.getString( 5 ) );
875 user.setStatus( daoUtil.getInt( 6 ) );
876 user.setLocale( new Locale( daoUtil.getString( 7 ) ) );
877 user.setUserLevel( daoUtil.getInt( 8 ) );
878 user.setAccessibilityMode( daoUtil.getBoolean( 9 ) );
879 userList.add( user );
880 }
881
882 daoUtil.free( );
883
884 return userList;
885 }
886
887
888
889
890 @Override
891 public Collection<AdminUser> selectUsersByRight( String strIdRight )
892 {
893 Collection<AdminUser> userList = new ArrayList<AdminUser>( );
894 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_USERS_BY_RIGHT );
895 daoUtil.setString( 1, strIdRight );
896 daoUtil.executeQuery( );
897
898 while ( daoUtil.next( ) )
899 {
900 AdminUser user = new AdminUser( );
901 user.setUserId( daoUtil.getInt( 1 ) );
902 user.setAccessCode( daoUtil.getString( 2 ) );
903 user.setLastName( daoUtil.getString( 3 ) );
904 user.setFirstName( daoUtil.getString( 4 ) );
905 user.setEmail( daoUtil.getString( 5 ) );
906 user.setStatus( daoUtil.getInt( 6 ) );
907 user.setLocale( new Locale( daoUtil.getString( 7 ) ) );
908 user.setUserLevel( daoUtil.getInt( 8 ) );
909 user.setAccessibilityMode( daoUtil.getBoolean( 9 ) );
910 userList.add( user );
911 }
912
913 daoUtil.free( );
914
915 return userList;
916 }
917
918
919
920
921 @Override
922 public boolean hasRight( int nUserId, String strIdRight )
923 {
924 boolean bHasRight = false;
925 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_USER_RIGHT );
926 daoUtil.setInt( 1, nUserId );
927 daoUtil.setString( 2, strIdRight );
928 daoUtil.executeQuery( );
929
930 if ( daoUtil.next( ) )
931 {
932 bHasRight = true;
933 }
934
935 daoUtil.free( );
936
937 return bHasRight;
938 }
939
940
941
942
943 @Override
944 public void deleteRightForUser( int nUserId, String strIdRight )
945 {
946 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_DELETE_USER_RIGHTS );
947 daoUtil.setInt( 1, nUserId );
948 daoUtil.setString( 2, strIdRight );
949 daoUtil.executeUpdate( );
950 daoUtil.free( );
951 }
952
953
954
955
956 @Override
957 public List<IPassword> selectUserPasswordHistory( int nUserID )
958 {
959 List<IPassword> listPasswordHistory = new ArrayList<IPassword>( );
960
961 DAOUtil daoUtil = new DAOUtil( SQL_SELECT_USER_PASSWORD_HISTORY );
962 daoUtil.setInt( 1, nUserID );
963 daoUtil.executeQuery( );
964
965 while ( daoUtil.next( ) )
966 {
967 listPasswordHistory.add( _passwordFactory.getPassword( daoUtil.getString( 1 ) ) );
968 }
969
970 daoUtil.free( );
971
972 return listPasswordHistory;
973 }
974
975
976
977
978 @Override
979 public int countUserPasswordHistoryFromDate( Timestamp minDate, int nUserId )
980 {
981 int nNbRes = 0;
982
983 DAOUtil daoUtil = new DAOUtil( SQL_COUNT_USER_PASSWORD_HISTORY );
984 daoUtil.setInt( 1, nUserId );
985 daoUtil.setTimestamp( 2, minDate );
986 daoUtil.executeQuery( );
987
988 if ( daoUtil.next( ) )
989 {
990 nNbRes = daoUtil.getInt( 1 );
991 }
992
993 daoUtil.free( );
994
995 return nNbRes;
996 }
997
998
999
1000
1001 @Override
1002 public void insertNewPasswordInHistory( IPassword password, int nUserId )
1003 {
1004 DAOUtil daoUtil = new DAOUtil( SQL_INSERT_PASSWORD_HISTORY );
1005 daoUtil.setInt( 1, nUserId );
1006 daoUtil.setString( 2, password.getStorableRepresentation( ) );
1007
1008 daoUtil.executeUpdate( );
1009 daoUtil.free( );
1010 }
1011
1012
1013
1014
1015 @Override
1016 public void removeAllPasswordHistoryForUser( int nUserId )
1017 {
1018 DAOUtil daoUtil = new DAOUtil( SQL_DELETE_PASSWORD_HISTORY );
1019 daoUtil.setInt( 1, nUserId );
1020 daoUtil.executeUpdate( );
1021 daoUtil.free( );
1022 }
1023
1024
1025
1026
1027 @Override
1028 public Map<String, Boolean> selectAnonymizationStatusUserStaticField( )
1029 {
1030 DAOUtil daoUtil = new DAOUtil( SQL_SELECT_ANONYMIZATION_STATUS_USER_FILED );
1031 daoUtil.executeQuery( );
1032
1033 Map<String, Boolean> resultMap = new HashMap<String, Boolean>( );
1034
1035 while ( daoUtil.next( ) )
1036 {
1037 resultMap.put( daoUtil.getString( 1 ), daoUtil.getBoolean( 2 ) );
1038 }
1039
1040 daoUtil.free( );
1041
1042 return resultMap;
1043 }
1044
1045
1046
1047
1048 @Override
1049 public void updateAnonymizationStatusUserStaticField( String strFieldName, boolean bAnonymizeFiled )
1050 {
1051 DAOUtil daoUtil = new DAOUtil( SQL_UPDATE_ANONYMIZATION_STATUS_USER_FILED );
1052 daoUtil.setBoolean( 1, bAnonymizeFiled );
1053 daoUtil.setString( 2, strFieldName );
1054 daoUtil.executeUpdate( );
1055 daoUtil.free( );
1056 }
1057
1058
1059
1060
1061 @Override
1062 public List<Integer> findAllExpiredUserId( )
1063 {
1064 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_EXPIRED_USER_ID );
1065 daoUtil.setInt( 1, AdminUser.EXPIRED_CODE );
1066
1067 List<Integer> listIdExpiredUser = new ArrayList<Integer>( );
1068 daoUtil.executeQuery( );
1069
1070 while ( daoUtil.next( ) )
1071 {
1072 listIdExpiredUser.add( daoUtil.getInt( 1 ) );
1073 }
1074
1075 daoUtil.free( );
1076
1077 return listIdExpiredUser;
1078 }
1079
1080
1081
1082
1083 @Override
1084 public List<Integer> getIdUsersWithExpiredLifeTimeList( Timestamp currentTimestamp )
1085 {
1086 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_EXPIRED_LIFE_TIME_USER_ID );
1087 daoUtil.setLong( 1, currentTimestamp.getTime( ) );
1088 daoUtil.setInt( 2, AdminUser.EXPIRED_CODE );
1089
1090 List<Integer> listIdExpiredUser = new ArrayList<Integer>( );
1091 daoUtil.executeQuery( );
1092
1093 while ( daoUtil.next( ) )
1094 {
1095 listIdExpiredUser.add( daoUtil.getInt( 1 ) );
1096 }
1097
1098 daoUtil.free( );
1099
1100 return listIdExpiredUser;
1101 }
1102
1103
1104
1105
1106 @Override
1107 public List<Integer> getIdUsersToSendFirstAlert( Timestamp alertMaxDate )
1108 {
1109 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_USER_ID_FIRST_ALERT );
1110 daoUtil.setInt( 1, AdminUser.EXPIRED_CODE );
1111 daoUtil.setLong( 2, alertMaxDate.getTime( ) );
1112
1113 List<Integer> listIdUserFirstAlert = new ArrayList<Integer>( );
1114 daoUtil.executeQuery( );
1115
1116 while ( daoUtil.next( ) )
1117 {
1118 listIdUserFirstAlert.add( daoUtil.getInt( 1 ) );
1119 }
1120
1121 daoUtil.free( );
1122
1123 return listIdUserFirstAlert;
1124 }
1125
1126
1127
1128
1129 @Override
1130 public List<Integer> getIdUsersToSendOtherAlert( Timestamp alertMaxDate, Timestamp timeBetweenAlerts,
1131 int maxNumberAlerts )
1132 {
1133 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_USER_ID_OTHER_ALERT );
1134 daoUtil.setInt( 1, maxNumberAlerts );
1135 daoUtil.setInt( 2, AdminUser.EXPIRED_CODE );
1136 daoUtil.setLong( 3, timeBetweenAlerts.getTime( ) );
1137 daoUtil.setLong( 4, alertMaxDate.getTime( ) );
1138
1139 List<Integer> listIdUserFirstAlert = new ArrayList<Integer>( );
1140 daoUtil.executeQuery( );
1141
1142 while ( daoUtil.next( ) )
1143 {
1144 listIdUserFirstAlert.add( daoUtil.getInt( 1 ) );
1145 }
1146
1147 daoUtil.free( );
1148
1149 return listIdUserFirstAlert;
1150 }
1151
1152
1153
1154
1155 @Override
1156 public List<Integer> getIdUsersWithExpiredPasswordsList( Timestamp currentTimestamp )
1157 {
1158 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_USER_ID_PASSWORD_EXPIRED );
1159 daoUtil.setTimestamp( 1, currentTimestamp );
1160
1161 List<Integer> idUserPasswordExpiredlist = new ArrayList<Integer>( );
1162 daoUtil.executeQuery( );
1163
1164 while ( daoUtil.next( ) )
1165 {
1166 idUserPasswordExpiredlist.add( daoUtil.getInt( 1 ) );
1167 }
1168
1169 daoUtil.free( );
1170
1171 return idUserPasswordExpiredlist;
1172 }
1173
1174
1175
1176
1177 @Override
1178 public void updateUserStatus( List<Integer> listIdUser, int nNewStatus )
1179 {
1180 if ( ( listIdUser != null ) && ( listIdUser.size( ) > 0 ) )
1181 {
1182 StringBuilder sbSQL = new StringBuilder( );
1183 sbSQL.append( SQL_QUERY_UPDATE_STATUS );
1184
1185 for ( int i = 0; i < listIdUser.size( ); i++ )
1186 {
1187 if ( i > 0 )
1188 {
1189 sbSQL.append( CONSTANT_COMMA );
1190 }
1191
1192 sbSQL.append( listIdUser.get( i ) );
1193 }
1194
1195 sbSQL.append( CONSTANT_CLOSE_PARENTHESIS );
1196
1197 DAOUtil daoUtil = new DAOUtil( sbSQL.toString( ) );
1198 daoUtil.setInt( 1, nNewStatus );
1199 daoUtil.executeUpdate( );
1200 daoUtil.free( );
1201 }
1202 }
1203
1204
1205
1206
1207 @Override
1208 public void updateNbAlert( List<Integer> listIdUser )
1209 {
1210 if ( ( listIdUser != null ) && ( listIdUser.size( ) > 0 ) )
1211 {
1212 StringBuilder sbSQL = new StringBuilder( );
1213 sbSQL.append( SQL_QUERY_UPDATE_NB_ALERT );
1214
1215 for ( int i = 0; i < listIdUser.size( ); i++ )
1216 {
1217 if ( i > 0 )
1218 {
1219 sbSQL.append( CONSTANT_COMMA );
1220 }
1221
1222 sbSQL.append( listIdUser.get( i ) );
1223 }
1224
1225 sbSQL.append( CONSTANT_CLOSE_PARENTHESIS );
1226
1227 DAOUtil daoUtil = new DAOUtil( sbSQL.toString( ) );
1228 daoUtil.executeUpdate( );
1229 daoUtil.free( );
1230 }
1231 }
1232
1233
1234
1235
1236 @Override
1237 public void updateChangePassword( List<Integer> listIdUser )
1238 {
1239 if ( ( listIdUser != null ) && ( listIdUser.size( ) > 0 ) )
1240 {
1241 StringBuilder sbSQL = new StringBuilder( );
1242 sbSQL.append( SQL_QUERY_UPDATE_RESET_PASSWORD_LIST_ID );
1243
1244 for ( int i = 0; i < listIdUser.size( ); i++ )
1245 {
1246 if ( i > 0 )
1247 {
1248 sbSQL.append( CONSTANT_COMMA );
1249 }
1250
1251 sbSQL.append( listIdUser.get( i ) );
1252 }
1253
1254 sbSQL.append( CONSTANT_CLOSE_PARENTHESIS );
1255
1256 DAOUtil daoUtil = new DAOUtil( sbSQL.toString( ) );
1257 daoUtil.executeUpdate( );
1258 daoUtil.free( );
1259 }
1260 }
1261
1262
1263
1264
1265 @Override
1266 public void updateUserExpirationDate( int nIdUser, Timestamp newExpirationDate )
1267 {
1268 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_UPDATE_REACTIVATE_ACCOUNT );
1269
1270 if ( newExpirationDate == null )
1271 {
1272 daoUtil.setLongNull( 1 );
1273 }
1274 else
1275 {
1276 daoUtil.setLong( 1, newExpirationDate.getTime( ) );
1277 }
1278
1279 daoUtil.setInt( 2, nIdUser );
1280
1281 daoUtil.executeUpdate( );
1282
1283 daoUtil.free( );
1284 }
1285
1286
1287
1288
1289 @Override
1290 public void updateDateLastLogin( int nIdUser, Timestamp dateLastLogin )
1291 {
1292 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_UPDATE_DATE_LAST_LOGIN );
1293 daoUtil.setTimestamp( 1, dateLastLogin );
1294 daoUtil.setInt( 2, nIdUser );
1295 daoUtil.executeUpdate( );
1296 daoUtil.free( );
1297 }
1298 }