Author: fdesbois Date: 2010-06-09 09:38:26 +0000 (Wed, 09 Jun 2010) New Revision: 502 Log: Evo #2325 : Add methods for connexion Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java trunk/wao-business/src/main/resources/i18n/wao-business-en_GB.properties trunk/wao-business/src/main/resources/i18n/wao-business-fr_FR.properties trunk/wao-business/src/main/xmi/wao.zargo trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Connexion.java trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/ConnectionTest.java Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java 2010-06-08 20:30:56 UTC (rev 501) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java 2010-06-09 09:38:26 UTC (rev 502) @@ -87,7 +87,7 @@ @Override public WaoUser executeConnect(TopiaContext transaction, - String login, String password) + String login, String password, UserRole role) throws TopiaException, WaoBusinessException { WaoUserDAO dao = WaoDAOHelper.getWaoUserDAO(transaction); @@ -100,6 +100,15 @@ if (user != null && user.getActive()) { // load company entity user.getCompany(); + + if (user.hasUserRole(role)) { + // Associate the connection role to the user + user.setCurrentRole(role); + } else { + throw new WaoBusinessException(Type.ILLEGAL_CONNECTION, + this.getClass(), + "Rôle non autorisé, veuillez en choisir un autre."); + } } else if (user != null && !user.getActive()) { throw new WaoBusinessException(Type.ILLEGAL_CONNECTION, this.getClass(), @@ -109,8 +118,7 @@ } else { throw new WaoBusinessException(Type.BAD_CONNECTION, this.getClass(), - "Identifiant ou mot de passe incorrects, " + - "veuillez réessayer."); + "Mot de passe incorrect, veuillez réessayer."); } return user; @@ -432,6 +440,34 @@ } } + @Override + public boolean executeExistLogin(TopiaContext transaction, String login) + throws TopiaException { + WaoUserDAO dao = WaoDAOHelper.getWaoUserDAO(transaction); + boolean exist = dao.existByProperties(WaoUser.LOGIN, login); + + return exist; + } + + @Override + public List<UserRole> executeGetUserRolesByLogin(TopiaContext transaction, + String login) + throws TopiaException { + + WaoUserDAO dao = WaoDAOHelper.getWaoUserDAO(transaction); + + WaoUser user = dao.findByLogin(login); + + List<UserRole> results = new ArrayList<UserRole>(); + if (user != null) { + results = user.getUserRoles(); + } + + return results; + } + + + } Modified: trunk/wao-business/src/main/resources/i18n/wao-business-en_GB.properties =================================================================== --- trunk/wao-business/src/main/resources/i18n/wao-business-en_GB.properties 2010-06-08 20:30:56 UTC (rev 501) +++ trunk/wao-business/src/main/resources/i18n/wao-business-en_GB.properties 2010-06-09 09:38:26 UTC (rev 502) @@ -62,8 +62,10 @@ wao.error.serviceUser.createUpdateCompany= wao.error.serviceUser.createUpdateUser= wao.error.serviceUser.deleteUser= +wao.error.serviceUser.existLogin= wao.error.serviceUser.forgetPassword= wao.error.serviceUser.getCompanies= wao.error.serviceUser.getNewUser= wao.error.serviceUser.getObservers= +wao.error.serviceUser.getUserRolesByLogin= wao.error.serviceUser.getUsersByCompany= Modified: trunk/wao-business/src/main/resources/i18n/wao-business-fr_FR.properties =================================================================== --- trunk/wao-business/src/main/resources/i18n/wao-business-fr_FR.properties 2010-06-08 20:30:56 UTC (rev 501) +++ trunk/wao-business/src/main/resources/i18n/wao-business-fr_FR.properties 2010-06-09 09:38:26 UTC (rev 502) @@ -61,8 +61,10 @@ wao.error.serviceUser.createUpdateCompany=Impossible de cr\u00E9er ou de mettre \u00E0 jour la soci\u00E9t\u00E9 wao.error.serviceUser.createUpdateUser=Impossible de cr\u00E9er ou de mettre \u00E0 jour l'utilisateur wao.error.serviceUser.deleteUser=Impossible de supprimer l'utilisateur +wao.error.serviceUser.existLogin= wao.error.serviceUser.forgetPassword=Impossible d'envoyer le mail d'oubli de mot de passe wao.error.serviceUser.getCompanies=Impossible de r\u00E9cup\u00E9rer la liste des soci\u00E9t\u00E9s wao.error.serviceUser.getNewUser=Impossible d'instancier un nouvel utilisateur wao.error.serviceUser.getObservers=Impossible de r\u00E9cup\u00E9rer la liste des observateurs +wao.error.serviceUser.getUserRolesByLogin= wao.error.serviceUser.getUsersByCompany=Impossible de r\u00E9cup\u00E9rer la liste des utilisateurs de la soci\u00E9t\u00E9 %1$s Modified: trunk/wao-business/src/main/xmi/wao.zargo =================================================================== (Binary files differ) Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Connexion.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Connexion.java 2010-06-08 20:30:56 UTC (rev 501) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Connexion.java 2010-06-09 09:38:26 UTC (rev 502) @@ -101,7 +101,7 @@ logger.debug("Login : " + login); } if (login != null && password != null) { - currentUser = serviceUser.connect(login, password); + currentUser = serviceUser.connect(login, password, null); if (logger.isDebugEnabled()) { logger.debug("User connected : " + currentUser.getFullName()); Modified: trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/ConnectionTest.java =================================================================== --- trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/ConnectionTest.java 2010-06-08 20:30:56 UTC (rev 501) +++ trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/ConnectionTest.java 2010-06-09 09:38:26 UTC (rev 502) @@ -28,6 +28,7 @@ import com.formos.tapestry.testify.core.ForComponents; import fr.ifremer.wao.WaoBusinessException; import fr.ifremer.wao.WaoException; +import fr.ifremer.wao.bean.UserRole; import fr.ifremer.wao.entity.News; import fr.ifremer.wao.entity.WaoUser; import fr.ifremer.wao.service.ServiceNews; @@ -118,7 +119,8 @@ private Element connectUser(Document page) throws WaoException, WaoBusinessException { - when(serviceUser.connect("jmichmuche", "password")).thenReturn(user); + // Need to use correct role + when(serviceUser.connect("jmichmuche", "password", null)).thenReturn(user); Map<String, String> fieldValues = new HashMap<String, String>(); fieldValues.put("login", "jmichmuche");