Mercurial > lada > lada-server
diff src/main/java/de/intevation/lada/rest/ProbeService.java @ 587:54a95a587093
Updated authorization for probe list. Performance is much better now!
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Tue, 24 Mar 2015 11:47:44 +0100 |
parents | a04658486ede |
children | 746e03da9fad |
line wrap: on
line diff
--- a/src/main/java/de/intevation/lada/rest/ProbeService.java Mon Mar 23 17:59:29 2015 +0100 +++ b/src/main/java/de/intevation/lada/rest/ProbeService.java Tue Mar 24 11:47:44 2015 +0100 @@ -137,11 +137,20 @@ params, defaultRepo.entityManager("land")); List<Map<String, Object>> result = - QueryTools.prepareResult(query.getResultList(), results, authorization, authorization.getInfo(request)); + QueryTools.prepareResult(query.getResultList(), results); if (params.containsKey("start") && params.containsKey("limit")) { int start = Integer.valueOf(params.getFirst("start")); int limit = Integer.valueOf(params.getFirst("limit")); - List<Map<String, Object>> subList = result.subList(start, limit + start); + int end = limit + start; + if (start + limit > result.size()) { + end = result.size(); + } + List<Map<String, Object>> subList = result.subList(start, end); + for (Map<String, Object> entry: subList) { + boolean readOnly = + authorization.isReadOnly((Integer)entry.get("id")); + entry.put("readonly", readOnly); + } return new Response(true, 200, subList, result.size()); } return new Response(true, 200, result, result.size());