Author: bleny Date: 2010-12-13 09:21:48 +0000 (Mon, 13 Dec 2010) New Revision: 832 Log: refactor whole application to consider mainObserver instead of observer Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java trunk/wao-business/src/main/java/fr/ifremer/wao/WaoContext.java trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java trunk/wao-business/src/main/java/fr/ifremer/wao/entity/BoatInfosImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/entity/ContactDAOImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/io/ContactInput.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSynthesisImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java trunk/wao-business/src/main/resources/i18n/wao-business-fr_FR.properties trunk/wao-business/src/main/xmi/wao.zargo trunk/wao-business/src/test/java/fr/ifremer/wao/AbstractServiceTest.java trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactImplTest.java trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactInternalTest.java trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSamplingImplTest.java trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSynthesisImplTest.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/ContactModelFactory.java trunk/wao-ui/src/main/webapp/Boats.tml trunk/wao-ui/src/main/webapp/Contacts.tml 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/ContactsTest.java Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2010-12-10 09:56:12 UTC (rev 831) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2010-12-13 09:21:48 UTC (rev 832) @@ -597,13 +597,12 @@ "topiaId CHARACTER VARYING(255) PRIMARY KEY," + "topiaVersion BIGINT NOT NULL," + "topiaCreateDate TIMESTAMP WITHOUT TIME ZONE NOT NULL," + - "waoUser character varying(255) NOT NULL," + + "waoUser character varying(255)," + "obsProgramOrdinal SMALLINT NOT NULL," + "userRoleOrdinal SMALLINT NOT NULL," + "canWrite BOOLEAN NOT NULL," + "CONSTRAINT waoUser_fkey FOREIGN KEY (waoUser) " + - "REFERENCES WaoUser (topiaid) MATCH SIMPLE " + - "ON UPDATE NO ACTION ON DELETE CASCADE);"); + "REFERENCES WaoUser (topiaid));"); } @Override @@ -650,4 +649,16 @@ queries.add("ALTER TABLE WaoUser DROP COLUMN role;"); queries.add("ALTER TABLE WaoUser DROP COLUMN roleReadOnly;"); } + + @Override + protected void addMultipleObserversInContact_1_7(List<String> queries) { + queries.add("ALTER TABLE Contact RENAME observer TO mainObserver"); + queries.add("CREATE TABLE Contact_SecondaryObservers (" + + "Contact character varying(255) NOT NULL," + + "SecondaryObservers character varying(255) NOT NULL," + + "CONSTRAINT Contact_fkey FOREIGN KEY (Contact) " + + "REFERENCES Contact (topiaid)," + + "CONSTRAINT SecondaryObservers_fkey FOREIGN KEY (SecondaryObservers) " + + "REFERENCES WaoUser (topiaid));"); + } } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoContext.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoContext.java 2010-12-10 09:56:12 UTC (rev 831) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoContext.java 2010-12-13 09:21:48 UTC (rev 832) @@ -117,6 +117,7 @@ * @param entity * @return boolean */ + @Deprecated <E extends TopiaEntity> boolean prepareTopiaId(Class<E> entityClass, E entity); Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2010-12-10 09:56:12 UTC (rev 831) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2010-12-13 09:21:48 UTC (rev 832) @@ -113,6 +113,8 @@ protected abstract void removeUserRolesColumns_1_7(List<String> queries); + protected abstract void addMultipleObserversInContact_1_7(List<String> queries); + protected static final Version[] VERSIONS = new Version[] { VersionUtil.valueOf("1.0"), VersionUtil.valueOf("1.1"), @@ -411,6 +413,8 @@ removeUserRolesColumns_1_7(queries); + addMultipleObserversInContact_1_7(queries); + String[] strings = queries.toArray(new String[queries.size()]); executeSQL(tx, true, true, strings); } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java 2010-12-10 09:56:12 UTC (rev 831) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java 2010-12-13 09:21:48 UTC (rev 832) @@ -499,7 +499,7 @@ // OBSERVER if (observer != null) { - query.addEquals(contactProperty.observer(), observer); + query.addEquals(contactProperty.mainObserver(), observer); } // Company filter is managed by SamplingFilter because the company is Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/BoatInfosImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/BoatInfosImpl.java 2010-12-10 09:56:12 UTC (rev 831) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/BoatInfosImpl.java 2010-12-13 09:21:48 UTC (rev 832) @@ -72,7 +72,7 @@ dao.createQueryDoneContactsFromDate(getBoat(), fromDate); String companyProperty = - TopiaQuery.getProperty(query.getMainAlias(), Contact.PROPERTY_OBSERVER, WaoUser.PROPERTY_COMPANY); + TopiaQuery.getProperty(query.getMainAlias(), Contact.PROPERTY_MAIN_OBSERVER, WaoUser.PROPERTY_COMPANY); query.addEquals(companyProperty, getCompany()); Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/ContactDAOImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/ContactDAOImpl.java 2010-12-10 09:56:12 UTC (rev 831) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/ContactDAOImpl.java 2010-12-13 09:21:48 UTC (rev 832) @@ -63,12 +63,12 @@ "MAX($1)", subContactProperty.topiaCreateDate())). addWhere(WaoQueryHelper.format( "$1 = $2", subContactProperty.boat(), mainContactProperty.boat())). - addEquals(subContactProperty.observerProperty().company(), company); + addEquals(subContactProperty.mainObserverProperty().company(), company); // Construct mainquery TopiaQuery query = createQuery(mainContactProperty.$alias()). addEquals(mainContactProperty.boat(), boat). - addEquals(mainContactProperty.observerProperty().company(), company). + addEquals(mainContactProperty.mainObserverProperty().company(), company). addSubQuery(WaoQueryHelper.format( "$1 = (?)", mainContactProperty.topiaCreateDate()), subquery); Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/io/ContactInput.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/io/ContactInput.java 2010-12-10 09:56:12 UTC (rev 831) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/ContactInput.java 2010-12-13 09:21:48 UTC (rev 832) @@ -117,9 +117,9 @@ WaoUser user = userDAO.findByLogin(observerLogin); if (user == null) { throw new ImportRefusedException("Utilisateur inexistant avec " + - "l'identifiant : " + observerLogin, rowNumber, PROPERTY_OBSERVER); + "l'identifiant : " + observerLogin, rowNumber, PROPERTY_MAIN_OBSERVER); } - setObserver(user); + setMainObserver(user); } /** @@ -134,16 +134,16 @@ public void initCompany() throws ImportRefusedException { // Keep observer company for an admin creator if (creator.isAdmin()) { - company = observer.getCompany(); + company = mainObserver.getCompany(); // For a non admin creator, use his own company } else { company = creator.getCompany(); // Check if the observer company is the same as the creator one - if (!observer.getCompany().equals(company)) { + if (!mainObserver.getCompany().equals(company)) { throw new ImportRefusedException( "L'observateur avec pour login '" + - observer.getLogin() + + mainObserver.getLogin() + "' n'appartient pas à votre société !", rowNumber, WaoUser.PROPERTY_COMPANY); } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java 2010-12-10 09:56:12 UTC (rev 831) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java 2010-12-13 09:21:48 UTC (rev 832) @@ -229,7 +229,7 @@ // Last contact ContactDAO contactDAO = WaoDAOHelper.getContactDAO(transaction); TopiaQuery query = contactDAO.createQueryLastContactForBoat(boat, company). - addLoad(Contact.PROPERTY_SAMPLE_ROW, Contact.PROPERTY_OBSERVER); + addLoad(Contact.PROPERTY_SAMPLE_ROW, Contact.PROPERTY_MAIN_OBSERVER); Contact contact = contactDAO.findByQuery(query); Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2010-12-10 09:56:12 UTC (rev 831) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2010-12-13 09:21:48 UTC (rev 832) @@ -141,7 +141,7 @@ // addLoad(contactProperty.observerProperty().company(), // contactProperty.sampleRowProperty().sampleMonth()); // TODO-fdesbois-2010-06-18 : manage aliases in addLoad - addLoad(TopiaQuery.getProperty(Contact.PROPERTY_OBSERVER, WaoUser.PROPERTY_COMPANY), + addLoad(TopiaQuery.getProperty(Contact.PROPERTY_MAIN_OBSERVER, WaoUser.PROPERTY_COMPANY), TopiaQuery.getProperty(Contact.PROPERTY_SAMPLE_ROW, SampleRow.PROPERTY_SAMPLE_MONTH) // TopiaQuery.getProperty(Contact.SAMPLE_ROW, SampleRow.PROFESSION, Profession.DCF5CODE) ); @@ -170,7 +170,7 @@ @Override public Contact executeGetNewContact(WaoUser user, SampleRow row, Boat boat) { Contact result = new ContactImpl(); - result.setObserver(user); + result.setMainObserver(user); result.setSampleRow(row); result.setBoat(boat); result.setContactState(ContactState.CONTACT_START); @@ -210,7 +210,7 @@ protected void checkObserver(Contact contact) throws WaoException { // Ano #2287 Temporary fix to avoid saving a null observer - if (contact.getObserver() == null) { + if (contact.getMainObserver() == null) { // Throw a NullPointerException to avoid saving null observer Throwable exception = new NullPointerException("observer can't be null to save" + @@ -438,7 +438,7 @@ String.valueOf(contact.getDataReliabilityOrdinal())); // Observer part - WaoUser observer = contact.getObserver(); + WaoUser observer = contact.getMainObserver(); Company company = observer.getCompany(); export.record(CONTACT.OBSERV_ID, observer.getLogin()); export.record(CONTACT.OBSERV_PRENOM, observer.getFirstName()); @@ -543,7 +543,7 @@ // Retrieve the existing contact String companyProperty = - TopiaQuery.getProperty(Contact.PROPERTY_OBSERVER, + TopiaQuery.getProperty(Contact.PROPERTY_MAIN_OBSERVER, WaoUser.PROPERTY_COMPANY); Contact contact = dao.findByProperties( @@ -890,7 +890,7 @@ // Retrieve existing contact Contact contactToUpdate = dao.findByTopiaId(contact.getTopiaId()); - WaoUser observer = contactToUpdate.getObserver(); + WaoUser observer = contactToUpdate.getMainObserver(); String observerEmail = observer.getLogin(); int boatImmatriculation = contactToUpdate.getBoat().getImmatriculation(); Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSynthesisImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSynthesisImpl.java 2010-12-10 09:56:12 UTC (rev 831) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSynthesisImpl.java 2010-12-13 09:21:48 UTC (rev 832) @@ -539,7 +539,7 @@ } WaoQueryHelper.CompanyProperty companyProperty = - contactProperty.observerProperty().companyProperty(); + contactProperty.mainObserverProperty().companyProperty(); Company company = filter.getCompany(); if (company != null) { @@ -615,7 +615,7 @@ String contactAlias = query.getMainAlias(); String companyProperty = - TopiaQuery.getProperty(contactAlias, Contact.PROPERTY_OBSERVER, WaoUser.PROPERTY_COMPANY); + TopiaQuery.getProperty(contactAlias, Contact.PROPERTY_MAIN_OBSERVER, WaoUser.PROPERTY_COMPANY); String companyNameProperty = TopiaQuery.getProperty(companyProperty, Company.PROPERTY_NAME); String tideBeginDateProperty = @@ -682,7 +682,7 @@ ContactProperty contactProperty = builder.initializeForContact(); WaoQueryHelper.CompanyProperty companyProperty = - contactProperty.observerProperty().companyProperty(); + contactProperty.mainObserverProperty().companyProperty(); TopiaQuery query = builder.applySamplingFilter(filter). addEquals(contactProperty.state(), ContactState.BOARDING_DONE.ordinal()). 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-12-10 09:56:12 UTC (rev 831) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java 2010-12-13 09:21:48 UTC (rev 832) @@ -63,7 +63,6 @@ import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.LinkedList; import java.util.List; @@ -206,12 +205,14 @@ WaoUserDAO dao = WaoDAOHelper.getWaoUserDAO(transaction); UserProfileDAO userProfileDAO = WaoDAOHelper.getUserProfileDAO(transaction); - WaoUser actualUser = user; + WaoUser userToUpdate; boolean newUser = user.getTopiaId() == null; if (newUser) { - context.prepareTopiaId(WaoUser.class, actualUser); + userToUpdate = user; + + context.prepareTopiaId(WaoUser.class, userToUpdate); WaoUser existUser = dao.findByLogin(user.getLogin()); // Check for a new user if login already exists if (existUser != null) { @@ -221,82 +222,108 @@ user.getLogin()); } - if (actualUser.getUserProfile() != null) { - for (UserProfile userProfile : actualUser.getUserProfile()) { - log.debug(userProfile + " to save : " + userProfile.getDescription()); - context.prepareTopiaId(UserProfile.class, userProfile); - userProfileDAO.update(userProfile); + if (userToUpdate.getUserProfile() != null) { + for (UserProfile profile : userToUpdate.getUserProfile()) { + log.debug("saving profile " + profile.getDescription()); + UserProfile profileToAdd = userProfileDAO.create( + UserProfile.PROPERTY_OBS_PROGRAM_ORDINAL, + profile.getObsProgramOrdinal(), + UserProfile.PROPERTY_USER_ROLE_ORDINAL, + profile.getUserRoleOrdinal(), + UserProfile.PROPERTY_CAN_WRITE, + profile.getCanWrite() + ); } } } else { - actualUser = dao.findByTopiaId(user.getTopiaId()); - - Collection<UserProfile> oldProfiles; - if (actualUser.getUserProfile() == null) { - oldProfiles = Collections.EMPTY_LIST; + userToUpdate = dao.findByTopiaId(user.getTopiaId()); + /* + Collection<UserProfile> profilesToRemove; + if (userToUpdate.getUserProfile() == null) { + profilesToRemove = Collections.EMPTY_LIST; } else { - oldProfiles = new ArrayList<UserProfile>(actualUser.getUserProfile()); + profilesToRemove = new ArrayList<UserProfile>(userToUpdate.getUserProfile()); } if (log.isDebugEnabled()) { - log.debug("old profiles : " + oldProfiles); + log.debug("old profiles : " + profilesToRemove); } - +*/ // set may be buggy - // actualUser.setUserProfile(user.getUserProfile()); - actualUser.clearUserProfile(); - actualUser.addAllUserProfile(user.getUserProfile()); +// userToUpdate.setUserProfile(new ArrayList<UserProfile>(user.getUserProfile())); + userToUpdate.clearUserProfile(); +// userToUpdate.addAllUserProfile(user.getUserProfile()); + for (UserProfile profile : user.getUserProfile()) { + UserProfile profileToAdd; + if (profile.getTopiaId() == null) { + + // WaoBinderHelper.getSimpleTopiaBinder(UserProfile.class).copy(profile, profileToAdd); + + // userProfileDAO.create(profileToAdd); + profileToAdd = userProfileDAO.create( + UserProfile.PROPERTY_OBS_PROGRAM_ORDINAL, + profile.getObsProgramOrdinal(), + UserProfile.PROPERTY_USER_ROLE_ORDINAL, + profile.getUserRoleOrdinal(), + UserProfile.PROPERTY_CAN_WRITE, + profile.getCanWrite() + ); + } else { + profileToAdd = userProfileDAO.findByTopiaId(profile.getTopiaId()); + } + userToUpdate.addUserProfile(profileToAdd); + } + +/* if (log.isDebugEnabled()) { - log.debug("new profiles : " + actualUser.getUserProfile()); + log.debug("new profiles : " + userToUpdate.getUserProfile()); } - for (UserProfile userProfile : actualUser.getUserProfile()) { + for (UserProfile userProfile : user.getUserProfile()) { if (log.isDebugEnabled()) { - log.debug("is " + userProfile + " in " + oldProfiles + " ? " - + oldProfiles.contains(userProfile)); + log.debug("is " + userProfile + " in " + profilesToRemove + " ? " + + profilesToRemove.contains(userProfile)); } - if (oldProfiles.contains(userProfile)) { + if (profilesToRemove.contains(userProfile)) { // this profile was already attributed to this user, don't // remove it : just keep it from being removed if (log.isDebugEnabled()) { log.debug("profile " + userProfile + " was already given to user"); } - oldProfiles.remove(userProfile); + profilesToRemove.remove(userProfile); } else { // this profile was added to the user if (log.isDebugEnabled()) { log.debug("profile " + userProfile + " is new for user"); } - context.prepareTopiaId(UserProfile.class, userProfile); userProfileDAO.create(userProfile); } } - // now, oldProfiles contains user has no longer, we must remove them if (log.isDebugEnabled()) { - log.debug("will remove deleted profiles : " + oldProfiles); + log.debug("will remove deleted profiles : " + profilesToRemove); } - for (UserProfile userProfile : oldProfiles) { + for (UserProfile userProfile : profilesToRemove) { userProfileDAO.delete(userProfile); - } + }*/ } - String password = actualUser.getPassword(); + String password = userToUpdate.getPassword(); if (generatePassword) { password = context.createRandomString(8); - actualUser.setPasswordChanged(true); + userToUpdate.setPasswordChanged(true); } // For a password set manually by user or generated - if (actualUser.isPasswordChanged()) { + if (userToUpdate.isPasswordChanged()) { String passwordEncoded = context.encodeString(password); - actualUser.setPassword(passwordEncoded); + userToUpdate.setPassword(passwordEncoded); } - log.debug("will store " + actualUser.getTopiaId()); - dao.update(actualUser); - log.debug("had stored " + actualUser.getTopiaId()); + log.debug("will store " + userToUpdate.getTopiaId()); + dao.update(userToUpdate); + log.debug("had stored " + userToUpdate.getTopiaId()); transaction.commitTransaction(); @@ -382,7 +409,7 @@ ContactDAO contactDAO = WaoDAOHelper.getContactDAO(transaction); - List<Contact> results = contactDAO.findAllByObserver(user); + List<Contact> results = contactDAO.findAllByMainObserver(user); if (!results.isEmpty()) { throw new WaoBusinessException(Type.ALREADY_EXISTS, @@ -392,17 +419,25 @@ } } - WaoUserDAO dao = WaoDAOHelper.getWaoUserDAO(transaction); - WaoUser actualUser = dao.findByTopiaId(user.getTopiaId()); + WaoUserDAO dao = WaoDAOHelper.getWaoUserDAO(transaction); + WaoUser userToDelete = dao.findByTopiaId(user.getTopiaId()); - // remove all profiles - UserProfileDAO userProfileDAO = WaoDAOHelper.getUserProfileDAO(transaction); - for (UserProfile userProfile : actualUser.getUserProfile()) { - userProfileDAO.delete(userProfile); - } +/* //userToDelete.clearUserProfile(); - dao.delete(actualUser); - transaction.commitTransaction(); + // userToDelete.setUserProfile(null); + + // remove all profiles + UserProfileDAO userProfileDAO = WaoDAOHelper.getUserProfileDAO(transaction); + Collection<UserProfile> userProfileCollection = userToDelete.getUserProfile(); + if (CollectionUtils.isNotEmpty(userProfileCollection)) { + for (UserProfile userProfile : userProfileCollection) { + // userProfileDAO.delete(userProfile); + } + }*/ + + dao.delete(userToDelete); + transaction.commitTransaction(); + } @Override 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-12-10 09:56:12 UTC (rev 831) +++ trunk/wao-business/src/main/resources/i18n/wao-business-fr_FR.properties 2010-12-13 09:21:48 UTC (rev 832) @@ -178,7 +178,7 @@ wao.error.serviceUser.createDefaultAdmin=Impossible de cr\u00E9er l'administrateur par d\u00E9faut 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.deleteCompany=Impossible de supprimer la société ou de vérifier les contraintes de suppression +wao.error.serviceUser.deleteCompany=Impossible de supprimer la soci\u00E9t\u00E9 ou de v\u00E9rifier les contraintes de suppression 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 Modified: trunk/wao-business/src/main/xmi/wao.zargo =================================================================== (Binary files differ) Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/AbstractServiceTest.java =================================================================== --- trunk/wao-business/src/test/java/fr/ifremer/wao/AbstractServiceTest.java 2010-12-10 09:56:12 UTC (rev 831) +++ trunk/wao-business/src/test/java/fr/ifremer/wao/AbstractServiceTest.java 2010-12-13 09:21:48 UTC (rev 832) @@ -397,7 +397,7 @@ contact = dao.create(); contact.setBoat(findDefaultBoat()); contact.setContactState(ContactState.CONTACT_START); - contact.setObserver(findDefaultObserver()); + contact.setMainObserver(findDefaultObserver()); contact.setSampleRow(findDefaultSampleRow()); if (log.isDebugEnabled()) { log.debug("Create contact : " + contact); @@ -572,7 +572,7 @@ // Contacts for company TARTANPION Contact contact1 = new ContactImpl(); contact1.setBoat(boat); - contact1.setObserver(user); + contact1.setMainObserver(user); contact1.setSampleRow(row); contact1.setContactState(ContactState.BOARDING_DONE); Date begin = DateUtil.createDate(3, 3, 2010); @@ -581,7 +581,7 @@ Contact contact2 = new ContactImpl(); contact2.setBoat(boat); - contact2.setObserver(user); + contact2.setMainObserver(user); contact2.setSampleRow(row); contact2.setContactState(ContactState.BOARDING_DONE); begin = DateUtil.createDate(3, 10, 2010); @@ -590,7 +590,7 @@ Contact contact3 = new ContactImpl(); contact3.setBoat(boat); - contact3.setObserver(user); + contact3.setMainObserver(user); contact3.setSampleRow(row); contact3.setContactState(ContactState.BOAT_REFUSED); begin = DateUtil.createDate(3, 5, 2010); @@ -600,7 +600,7 @@ // Contacts for company BIS Contact contact4 = new ContactImpl(); contact4.setBoat(boat2); - contact4.setObserver(user2); + contact4.setMainObserver(user2); contact4.setSampleRow(row2); contact4.setContactState(ContactState.BOARDING_EXPECTED); begin = DateUtil.createDate(3, 3, 2010); @@ -609,7 +609,7 @@ Contact contact5 = new ContactImpl(); contact5.setBoat(boat2); - contact5.setObserver(user2); + contact5.setMainObserver(user2); contact5.setSampleRow(row2); contact5.setContactState(ContactState.BOAT_UNAVAILABLE); begin = DateUtil.createDate(3, 5, 2010); @@ -619,7 +619,7 @@ // Contact refused by program, will not be in result Contact contact6 = new ContactImpl(); contact6.setBoat(boat2); - contact6.setObserver(user2); + contact6.setMainObserver(user2); contact6.setSampleRow(row2); contact6.setContactState(ContactState.BOAT_UNAVAILABLE); begin = DateUtil.createDate(3, 3, 2010); Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactImplTest.java =================================================================== --- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactImplTest.java 2010-12-10 09:56:12 UTC (rev 831) +++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactImplTest.java 2010-12-13 09:21:48 UTC (rev 832) @@ -92,7 +92,7 @@ Contact contact = new ContactImpl(); WaoUser observer = createDefaultObserver(); - contact.setObserver(observer); + contact.setMainObserver(observer); try { Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactInternalTest.java =================================================================== --- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactInternalTest.java 2010-12-10 09:56:12 UTC (rev 831) +++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactInternalTest.java 2010-12-13 09:21:48 UTC (rev 832) @@ -28,7 +28,6 @@ import fr.ifremer.wao.bean.ConnectedUser; import fr.ifremer.wao.bean.ContactState; import fr.ifremer.wao.bean.ContactStatus.NullSampleMonthException; -import fr.ifremer.wao.bean.UserRole; import fr.ifremer.wao.entity.Boat; import fr.ifremer.wao.entity.BoatDAO; import fr.ifremer.wao.entity.Company; @@ -149,7 +148,7 @@ WaoUser.PROPERTY_FIRST_NAME, "Jean", WaoUser.PROPERTY_LAST_NAME, "Michmuche"); - when(contact.getObserver()).thenReturn(observer); + when(contact.getMainObserver()).thenReturn(observer); } SampleRowDAO rowDAO = @@ -591,7 +590,7 @@ Date createDate = DateUtil.createDate(18,3,2010); assertEquals(createDate, result.getTopiaCreateDate()); assertEquals(ContactState.BOARDING_DONE, result.getContactState()); - assertEquals(observer, result.getObserver()); + assertEquals(observer, result.getMainObserver()); assertEquals(sampleRow, result.getSampleRow()); assertEquals(boat, result.getBoat()); assertEquals(DateUtil.createDate(22,3,2010), @@ -626,7 +625,7 @@ log.info("test 4 : Error on observer"); when(reader.get(CONTACT.OBSERV_ID.name())).thenReturn("FAKE"); - checkImportError(Contact.PROPERTY_OBSERVER); + checkImportError(Contact.PROPERTY_MAIN_OBSERVER); // Reinit observer when(reader.get(CONTACT.OBSERV_ID.name())). thenReturn(observer.getLogin()); @@ -705,7 +704,7 @@ assertNotNull(existingContact); assertEquals(boat, existingContact.getBoat()); assertEquals(sampleRow, existingContact.getSampleRow()); - assertEquals(observer, existingContact.getObserver()); + assertEquals(observer, existingContact.getMainObserver()); assertEquals(ContactState.CONTACT_START, existingContact.getContactState()); } finally { Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSamplingImplTest.java =================================================================== --- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSamplingImplTest.java 2010-12-10 09:56:12 UTC (rev 831) +++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSamplingImplTest.java 2010-12-13 09:21:48 UTC (rev 832) @@ -188,7 +188,7 @@ Contact contact = new ContactImpl(); WaoUser observer = createDefaultObserver(); - contact.setObserver(observer); + contact.setMainObserver(observer); contact.setSampleRow(result); manager.getServiceContact().saveContact(contact, false); @@ -530,7 +530,7 @@ Contact contact = new ContactImpl(); WaoUser observer = createDefaultObserver(); - contact.setObserver(observer); + contact.setMainObserver(observer); contact.setSampleRow(row); manager.getServiceContact().saveContact(contact, false); Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSynthesisImplTest.java =================================================================== --- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSynthesisImplTest.java 2010-12-10 09:56:12 UTC (rev 831) +++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSynthesisImplTest.java 2010-12-13 09:21:48 UTC (rev 832) @@ -154,7 +154,7 @@ // First contact : OK Contact contact1 = new ContactImpl(); contact1.setBoat(boat); - contact1.setObserver(user); + contact1.setMainObserver(user); contact1.setSampleRow(row); contact1.setContactState(ContactState.BOARDING_DONE); Date begin = DateUtil.createDate(3, 3, 2010); @@ -164,7 +164,7 @@ Contact contact2 = new ContactImpl(); contact2.setBoat(boat); - contact2.setObserver(user); + contact2.setMainObserver(user); contact2.setSampleRow(row); contact2.setContactState(ContactState.BOARDING_DONE); begin = DateUtil.createDate(3, 3, 2010); @@ -174,7 +174,7 @@ Contact contact3 = new ContactImpl(); contact3.setBoat(boat2); - contact3.setObserver(user); + contact3.setMainObserver(user); contact3.setSampleRow(row); contact3.setContactState(ContactState.BOARDING_DONE); begin = DateUtil.createDate(3, 3, 2010); @@ -245,7 +245,7 @@ // First contact : OK Contact contact1 = new ContactImpl(); contact1.setBoat(boat); - contact1.setObserver(user); + contact1.setMainObserver(user); contact1.setSampleRow(row); // 1 real observer over 1 contact1.setNbObservants(1); @@ -257,7 +257,7 @@ Contact contact2 = new ContactImpl(); contact2.setBoat(boat); - contact2.setObserver(user); + contact2.setMainObserver(user); contact2.setSampleRow(row); // 2 real observer over 1 contact2.setNbObservants(2); @@ -269,7 +269,7 @@ Contact contact3 = new ContactImpl(); contact3.setBoat(boat2); - contact3.setObserver(user2); + contact3.setMainObserver(user2); contact3.setSampleRow(row2); // 1 real observer over 2 contact3.setNbObservants(1); @@ -356,7 +356,7 @@ // // Contacts for company TARTANPION // Contact contact1 = new ContactImpl(); // contact1.setBoat(boat); -// contact1.setObserver(user); +// contact1.setMainObserver(user); // contact1.setSampleRow(row); // contact1.setContactState(ContactState.BOARDING_DONE); // Date begin = DateUtil.createDate(3, 3, 2010); @@ -365,7 +365,7 @@ // // Contact contact2 = new ContactImpl(); // contact2.setBoat(boat); -// contact2.setObserver(user); +// contact2.setMainObserver(user); // contact2.setSampleRow(row); // contact2.setContactState(ContactState.BOARDING_DONE); // begin = DateUtil.createDate(3, 10, 2010); @@ -374,7 +374,7 @@ // // Contact contact3 = new ContactImpl(); // contact3.setBoat(boat); -// contact3.setObserver(user); +// contact3.setMainObserver(user); // contact3.setSampleRow(row); // contact3.setContactState(ContactState.BOAT_REFUSED); // begin = DateUtil.createDate(3, 5, 2010); @@ -384,7 +384,7 @@ // // Contacts for company BIS // Contact contact4 = new ContactImpl(); // contact4.setBoat(boat2); -// contact4.setObserver(user2); +// contact4.setMainObserver(user2); // contact4.setSampleRow(row2); // contact4.setContactState(ContactState.BOARDING_EXPECTED); // begin = DateUtil.createDate(3, 3, 2010); @@ -393,7 +393,7 @@ // // Contact contact5 = new ContactImpl(); // contact5.setBoat(boat2); -// contact5.setObserver(user2); +// contact5.setMainObserver(user2); // contact5.setSampleRow(row2); // contact5.setContactState(ContactState.BOAT_UNAVAILABLE); // begin = DateUtil.createDate(3, 5, 2010); @@ -403,7 +403,7 @@ // // Contact refused by program, will not be in result // Contact contact6 = new ContactImpl(); // contact6.setBoat(boat2); -// contact6.setObserver(user2); +// contact6.setMainObserver(user2); // contact6.setSampleRow(row2); // contact6.setContactState(ContactState.BOAT_UNAVAILABLE); // begin = DateUtil.createDate(3, 3, 2010); @@ -527,7 +527,7 @@ // First contact : OK Contact contact1 = new ContactImpl(); contact1.setBoat(boat); - contact1.setObserver(user); + contact1.setMainObserver(user); contact1.setSampleRow(row); Date begin = DateUtil.createDate(3, 3, 2010); contact1.setTideBeginDate(begin); @@ -539,7 +539,7 @@ Contact contact2 = new ContactImpl(); contact2.setBoat(boat); - contact2.setObserver(user); + contact2.setMainObserver(user); contact2.setSampleRow(row); begin = DateUtil.createDate(3, 3, 2010); contact2.setTideBeginDate(begin); @@ -551,7 +551,7 @@ Contact contact3 = new ContactImpl(); contact3.setBoat(boat2); - contact3.setObserver(user2); + contact3.setMainObserver(user2); contact3.setSampleRow(row2); begin = DateUtil.createDate(3, 3, 2010); contact3.setTideBeginDate(begin); Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java 2010-12-10 09:56:12 UTC (rev 831) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java 2010-12-13 09:21:48 UTC (rev 832) @@ -557,10 +557,10 @@ if (logger.isDebugEnabled()) { logger.debug("Edit contact : " + contactId); logger.debug("Contact : " + getContacts().get(contactId)); - logger.debug("Set observerId : " + getContacts().get(contactId).getObserver()); + logger.debug("Set observerId : " + getContacts().get(contactId).getMainObserver()); } contactEdited = getContacts().get(contactId); //prepareContactEdited(contactId); - contactUserId = contactEdited.getObserver().getId(); + contactUserId = contactEdited.getMainObserver().getId(); //contactEditedId = contactId; contactSelectedId = contactId; oldComment = contactEdited.getComment(); @@ -586,7 +586,7 @@ // ContactEdited is in session, previously set by Edit action // contactEdited.setState(contactState.toString()); WaoUser contactUser = getUserSelectModel().findObject(contactUserId); - contactEdited.setObserver(contactUser); + contactEdited.setMainObserver(contactUser); if (logger.isDebugEnabled()) { logger.debug("Comment : " + contactEdited.getComment()); Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/ContactModelFactory.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/ContactModelFactory.java 2010-12-10 09:56:12 UTC (rev 831) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/ContactModelFactory.java 2010-12-13 09:21:48 UTC (rev 832) @@ -146,7 +146,7 @@ @Override public Object get(Object arg0) { Contact contact = (Contact)arg0; - return contact.getObserver().getFullName(); + return contact.getMainObserver().getFullName(); } @Override @@ -170,7 +170,7 @@ @Override public Object get(Object arg0) { Contact contact = (Contact)arg0; - return contact.getObserver().getCompany().getName(); + return contact.getMainObserver().getCompany().getName(); } @Override Modified: trunk/wao-ui/src/main/webapp/Boats.tml =================================================================== --- trunk/wao-ui/src/main/webapp/Boats.tml 2010-12-10 09:56:12 UTC (rev 831) +++ trunk/wao-ui/src/main/webapp/Boats.tml 2010-12-13 09:21:48 UTC (rev 832) @@ -248,7 +248,7 @@ ${companyBoatInfos.lastContact.contactState.libelle()} </p:state> <p:createdBy> - ${companyBoatInfos.lastContact.observer.fullName} + ${companyBoatInfos.lastContact.mainObserver.fullName} </p:createdBy> <p:sampleRowCode> ${companyBoatInfos.lastContact.sampleRow.code} Modified: trunk/wao-ui/src/main/webapp/Contacts.tml =================================================================== --- trunk/wao-ui/src/main/webapp/Contacts.tml 2010-12-10 09:56:12 UTC (rev 831) +++ trunk/wao-ui/src/main/webapp/Contacts.tml 2010-12-13 09:21:48 UTC (rev 832) @@ -21,7 +21,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU Affero General Public License + You should have received a copy of the GNU Affero General Public License observer along with this program. If not, see <http://www.gnu.org/licenses/>. #L% --> @@ -195,7 +195,7 @@ <p:createdByCell> <t:if t:test="editionMode"> <input t:type="select" t:model="userSelectModel" t:validate="required" t:value="contactUserId"/> - <p:else>${contact.observer.fullName}</p:else> + <p:else>${contact.mainObserver.fullName}</p:else> </t:if> </p:createdByCell> <p:sampleRowCell> 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-12-10 09:56:12 UTC (rev 831) +++ trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/ConnectionTest.java 2010-12-13 09:21:48 UTC (rev 832) @@ -191,11 +191,18 @@ /** EXECUTE SUBMISSION FOR ROLE **/ logger.info("-- Choose role ADMIN : redirection to 'Index' page"); + /* Map<String, String> fieldValues = new HashMap<String, String>(); fieldValues.put("userRole", UserRole.ADMIN.name()); Document result = tester.submitForm( connectionPage2.getElementById("roleForm"), fieldValues); + */ + Map<String, String> fieldValues = new HashMap<String, String>(); + fieldValues.put("userProfile", user.getProfile().getTopiaId()); + Document result = tester.submitForm( + connectionPage2.getElementById("roleForm"), fieldValues); + Assert.assertNotNull(serviceAuthentication.getConnectedUser().getRole()); checkIndexPage(result); Modified: trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/ContactsTest.java =================================================================== --- trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/ContactsTest.java 2010-12-10 09:56:12 UTC (rev 831) +++ trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/ContactsTest.java 2010-12-13 09:21:48 UTC (rev 832) @@ -76,9 +76,9 @@ Contact contact1 = Mockito.mock(Contact.class); Contact contact2 = Mockito.mock(Contact.class); - Mockito.when(contact1.getObserver()).thenReturn(observer); + Mockito.when(contact1.getMainObserver()).thenReturn(observer); Mockito.when(contact1.getTopiaId()).thenReturn("C1"); - Mockito.when(contact2.getObserver()).thenReturn(observer2); + Mockito.when(contact2.getMainObserver()).thenReturn(observer2); Mockito.when(contact1.getTopiaId()).thenReturn("C2"); Map<String, Contact> contacts = new HashMap<String, Contact>();