[Suiviobsmer-commits] r186 - in trunk: suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl suiviobsmer-business/src/main/xmi suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages
Author: fdesbois Date: 2010-01-12 14:57:02 +0000 (Tue, 12 Jan 2010) New Revision: 186 Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerBusinessException.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/UserImpl.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceUserImpl.java trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Administration.java trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/UserProfile.java Log: Resolve issue on password managment Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerBusinessException.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerBusinessException.java 2010-01-12 14:33:15 UTC (rev 185) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerBusinessException.java 2010-01-12 14:57:02 UTC (rev 186) @@ -52,7 +52,7 @@ } public static enum Type { - IMPORT_ERROR, SELECT_PROBLEM, NOT_EXISTS, OTHER, CONNECTION; + IMPORT_ERROR, NOT_EXISTS, ALREADY_EXISTS, SYNTAX, CONNECTION; } public Type getType() { Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/UserImpl.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/UserImpl.java 2010-01-12 14:33:15 UTC (rev 185) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/UserImpl.java 2010-01-12 14:57:02 UTC (rev 186) @@ -43,6 +43,8 @@ private static final long serialVersionUID = 1L; + protected boolean passwordChanged; + /** * Return the fullName of the user, i.e. fisrtName + lastName. * @return a String for the user fullName @@ -64,4 +66,14 @@ return SuiviObsmerContext.convertId(getTopiaId()); } + @Override + public void setPasswordChanged(boolean changed) { + this.passwordChanged = changed; + } + + @Override + public boolean isPasswordChanged() { + return this.passwordChanged; + } + } Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceUserImpl.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceUserImpl.java 2010-01-12 14:33:15 UTC (rev 185) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceUserImpl.java 2010-01-12 14:57:02 UTC (rev 186) @@ -90,7 +90,7 @@ TopiaContext transaction = null; try { if (!login.contains("@")) { - throw new SuiviObsmerBusinessException(Type.OTHER, this.getClass(), "Votre identifiant n'est pas un email valide, " + + throw new SuiviObsmerBusinessException(Type.SYNTAX, this.getClass(), "Votre identifiant n'est pas un email valide, " + "veuillez contacter un administrateur pour qu'il puisse changer votre mot de passe."); } @@ -138,21 +138,34 @@ transaction = rootContext.beginTransaction(); + UserDAO dao = SuiviObsmerModelDAOHelper.getUserDAO(transaction); + + boolean newUser = SuiviObsmerContext.prepareTopiaId(User.class, user); + + // Check for a new user if login already exists + if (newUser) { + User existUser = dao.findByLogin(user.getLogin()); + if (existUser != null) { + throw new SuiviObsmerBusinessException(Type.ALREADY_EXISTS, this.getClass(), + "Un utilisateur existe déjà avec ce login " + user.getLogin()); + } + } + String password = user.getPassword(); if (generatePassword) { password = SuiviObsmerContext.createRandomString(8); + user.setPasswordChanged(true); if (log.isDebugEnabled()) { - log.debug("show password : " + password); + log.debug("show generated password : " + password); } } + // For a password set manually by user or generated + if (user.isPasswordChanged()) { + String passwordEncoded = SuiviObsmerContext.encodeString(password); + user.setPassword(passwordEncoded); + } - String passwordEncoded = SuiviObsmerContext.encodeString(password); - user.setPassword(passwordEncoded); - - UserDAO dao = SuiviObsmerModelDAOHelper.getUserDAO(transaction); - - boolean newUser = SuiviObsmerContext.prepareTopiaId(User.class, user); dao.update(user); if (newUser && user.getLogin().contains("@")) { Modified: trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo =================================================================== (Binary files differ) Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Administration.java =================================================================== --- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Administration.java 2010-01-12 14:33:15 UTC (rev 185) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Administration.java 2010-01-12 14:57:02 UTC (rev 186) @@ -21,8 +21,8 @@ package fr.ifremer.suiviobsmer.ui.pages; +import fr.ifremer.suiviobsmer.SuiviObsmerBusinessException; import fr.ifremer.suiviobsmer.SuiviObsmerException; -import fr.ifremer.suiviobsmer.SuiviObsmerContext; import fr.ifremer.suiviobsmer.entity.Company; import fr.ifremer.suiviobsmer.entity.CompanyImpl; import fr.ifremer.suiviobsmer.entity.User; @@ -257,11 +257,15 @@ } if (!StringUtils.isEmpty(password)) { - String encodedPassword = SuiviObsmerContext.encodeString(password); - user.setPassword(encodedPassword); + user.setPassword(password); + user.setPasswordChanged(true); } - serviceUser.createUpdateUser(user, generatePassword); - userId = user.getId(); + try { + serviceUser.createUpdateUser(user, generatePassword); + userId = user.getId(); + } catch (SuiviObsmerBusinessException eee) { + layout.getFeedBack().addError(eee.getMessage()); + } } } Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/UserProfile.java =================================================================== --- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/UserProfile.java 2010-01-12 14:33:15 UTC (rev 185) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/UserProfile.java 2010-01-12 14:57:02 UTC (rev 186) @@ -21,6 +21,7 @@ package fr.ifremer.suiviobsmer.ui.pages; +import fr.ifremer.suiviobsmer.SuiviObsmerBusinessException; import fr.ifremer.suiviobsmer.SuiviObsmerException; import fr.ifremer.suiviobsmer.entity.User; import fr.ifremer.suiviobsmer.services.ServiceUser; @@ -84,7 +85,7 @@ return userEditable; } - void onSuccessFromUserForm() { + void onSuccessFromUserForm() throws SuiviObsmerException { if (password != null && !password.equals(password2)) { userForm.recordError("Les deux password ne sont pas identiques, vérifiez la saisie !"); @@ -92,14 +93,15 @@ try { if (!StringUtils.isEmpty(password)) { userEditable.setPassword(password); + userEditable.setPasswordChanged(true); } serviceUser.createUpdateUser(userEditable, false); layout.getFeedBack().addInfo("Modifications enregistrées avec succès !"); - } catch (SuiviObsmerException eee) { + } catch (SuiviObsmerBusinessException eee) { userForm.recordError(eee.getMessage()); - if (log.isErrorEnabled()) { - log.error("Error during user save", eee); - } +// if (log.isErrorEnabled()) { +// log.error("Error during user save", eee); +// } } } }
participants (1)
-
fdesbois@users.labs.libre-entreprise.org