Author: bleny Date: 2014-04-02 11:05:05 +0200 (Wed, 02 Apr 2014) New Revision: 1796 Url: http://forge.codelutin.com/projects/wao/repository/revisions/1796 Log: remove fixme in ObsMerContactsService#newContactFilter Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/ContactsFilter.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerBoatsService.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerContactsService.java Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/ContactsFilter.java =================================================================== --- trunk/wao-persistence/src/main/java/fr/ifremer/wao/ContactsFilter.java 2014-04-02 08:57:00 UTC (rev 1795) +++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/ContactsFilter.java 2014-04-02 09:05:05 UTC (rev 1796) @@ -18,6 +18,8 @@ protected SampleRowsFilter sampleRowFilter; + protected BoatsFilter boatFilter; + /** * Filter contact on {@link fr.ifremer.wao.entity.Contact#getCreationDate()} or on * {@link fr.ifremer.wao.entity.Contact#getObservationBeginDate()} according to @@ -72,6 +74,7 @@ public ContactsFilter() { sampleRowFilter = new SampleRowsFilter(); + boatFilter = new BoatsFilter(); } public SampleRowsFilter getSampleRowFilter() { @@ -82,6 +85,14 @@ this.sampleRowFilter = sampleRowFilter; } + public BoatsFilter getBoatFilter() { + return boatFilter; + } + + public void setBoatFilter(BoatsFilter boatFilter) { + this.boatFilter = boatFilter; + } + public Date getPeriodFrom() { return periodFrom; } @@ -259,6 +270,7 @@ ContactsFilter that = (ContactsFilter) o; boolean equals = Objects.equals(sampleRowFilter, that.sampleRowFilter) + && Objects.equals(boatFilter, that.boatFilter) && Objects.equals(periodFrom, that.periodFrom) && Objects.equals(periodTo, that.periodTo) && WaoUtils.isEqualCollection(contactIds, that.contactIds) @@ -286,6 +298,7 @@ @Override public int hashCode() { int hashCode = Objects.hashCode(sampleRowFilter); + hashCode = 31 * hashCode + Objects.hashCode(boatFilter); hashCode = 31 * hashCode + Objects.hashCode(periodFrom); hashCode = 31 * hashCode + Objects.hashCode(periodFrom); hashCode = 31 * hashCode + WaoUtils.collectionHashcode(contactIds); Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerBoatsService.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerBoatsService.java 2014-04-02 08:57:00 UTC (rev 1795) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerBoatsService.java 2014-04-02 09:05:05 UTC (rev 1796) @@ -82,14 +82,13 @@ if (authenticatedWaoUser.isProfessional()) { // Pour le profesionnel, on restreint d'office à la liste des bateaux qu'il peut voir - Collection<Boat> canReadBoats = authenticatedWaoUser.getWaoUser().getCanReadBoats(); - - if (CollectionUtils.isEmpty(canReadBoats)) { + Collection<String> canReadBoatsTopiaIds = authenticatedWaoUser.getWaoUser().getCanReadBoatsTopiaIds(); + if (CollectionUtils.isEmpty(canReadBoatsTopiaIds)) { if (log.isWarnEnabled()) { log.warn("user " + authenticatedWaoUser.getWaoUser() + " is professional but can't read any boat"); } } else { - boatsFilter.setBoatIds(new HashSet<>(authenticatedWaoUser.getWaoUser().getCanReadBoatsTopiaIds())); + boatsFilter.setBoatIds(new HashSet<>(canReadBoatsTopiaIds)); } } Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerContactsService.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerContactsService.java 2014-04-02 08:57:00 UTC (rev 1795) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerContactsService.java 2014-04-02 09:05:05 UTC (rev 1796) @@ -2,18 +2,23 @@ import com.google.common.collect.ImmutableSet; import fr.ifremer.wao.ContactsFilter; -import fr.ifremer.wao.entity.Boat; import fr.ifremer.wao.entity.Contact; import fr.ifremer.wao.services.AuthenticatedWaoUser; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.time.DateUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import java.util.Calendar; import java.util.Collection; import java.util.Date; +import java.util.HashSet; import java.util.List; public class ObsMerContactsService extends WaoServiceSupport { + private static final Log log = LogFactory.getLog(ObsMerContactsService.class); + public List<Contact> findAll(ContactsFilter filter) { List<Contact> all = getContactDao().findAll(filter); @@ -53,15 +58,14 @@ if (authenticatedWaoUser.isProfessional()) { // Pour le profesionnel, on restreint d'office à la liste des contacts portant sur les bateaux qu'il peut voir - Collection<Boat> canReadBoats = authenticatedWaoUser.getWaoUser().getCanReadBoats(); -// FIXME brendan 25/03/14 -// if (CollectionUtils.isEmpty(canReadBoats)) { -// if (log.isWarnEnabled()) { -// log.warn("user " + connectedUser.getUser() + " is professional but can't read any boat"); -// } -// } else { -// newContactsFilter.getBoatFilter().setBoats(new ArrayList<Boat>(canReadBoats)); -// } + Collection<String> canReadBoatsTopiaIds = authenticatedWaoUser.getWaoUser().getCanReadBoatsTopiaIds(); + if (CollectionUtils.isEmpty(canReadBoatsTopiaIds)) { + if (log.isWarnEnabled()) { + log.warn("user " + authenticatedWaoUser.getWaoUser() + " is professional but can't read any boat"); + } + } else { + newContactsFilter.getBoatFilter().setBoatIds(new HashSet<>(canReadBoatsTopiaIds)); + } } return newContactsFilter;