# HG changeset patch # User Raimund Renkert # Date 1373023382 -7200 # Node ID 9dae52dd8157ef4c2e67f9a87a38d239e8b3f7b2 # Parent 82f34d52be0bdeed6658832028932b10623d293f Use the readonly flag in LProbeInfo to define a probe as readonly. diff -r 82f34d52be0b -r 9dae52dd8157 src/main/java/de/intevation/lada/model/LProbeInfo.java --- a/src/main/java/de/intevation/lada/model/LProbeInfo.java Fri Jul 05 13:21:28 2013 +0200 +++ b/src/main/java/de/intevation/lada/model/LProbeInfo.java Fri Jul 05 13:23:02 2013 +0200 @@ -89,6 +89,12 @@ @Column(name="messmethode") private String messmethode; + @Column(name="fertig") + private Boolean fertig; + + @Column(name="readonly") + private Boolean readonly; + public LProbeInfo() { } @@ -284,6 +290,22 @@ this.messmethode = messmethode; } + public Boolean getFertig() { + return fertig; + } + + public void setFertig(Boolean fertig) { + this.fertig = fertig; + } + + public Boolean getReadonly() { + return readonly; + } + + public void setReadonly(Boolean readonly) { + this.readonly = readonly; + } + public LProbe toLProbe() { LProbe probe = new LProbe(); probe.setMstId(mstId); diff -r 82f34d52be0b -r 9dae52dd8157 src/main/java/de/intevation/lada/rest/LProbeService.java --- a/src/main/java/de/intevation/lada/rest/LProbeService.java Fri Jul 05 13:21:28 2013 +0200 +++ b/src/main/java/de/intevation/lada/rest/LProbeService.java Fri Jul 05 13:23:02 2013 +0200 @@ -90,7 +90,6 @@ String mstId = probe.get(0).getMstId(); if (auth.getNetzbetreiber().contains(nbId)) { if (auth.getMst().contains(mstId)) { - response.setReadonly(isReadOnly(id)); return response; } response.setReadonly(true); @@ -130,6 +129,7 @@ repository.getEntityManager(), LProbeInfo.class); builder.or("netzbetreiberId", auth.getNetzbetreiber()); + builder.or("fertig", Boolean.TRUE); MultivaluedMap params = info.getQueryParameters(); if (params.isEmpty()) { return repository.filter(builder.getQuery()); @@ -213,28 +213,4 @@ return new Response(false, 699, new ArrayList()); } } - - /** - * Determine if the LProbe identified by probeId is writeable for the user. - * - * @param probeId The probe id. - */ - public boolean isReadOnly(String probeId) { - QueryBuilder builder = - new QueryBuilder( - repository.getEntityManager(), - LMessung.class); - builder.and("probeId", probeId); - Response response = messungRepository.filter(builder.getQuery()); - List messungen = (List) response.getData(); - if (messungen.isEmpty()) { - return false; - } - for(LMessung messung : messungen) { - if (messung.isFertig()) { - return true; - } - } - return false; - } }