Mercurial > lada > lada-server
comparison 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 |
comparison
equal
deleted
inserted
replaced
586:7f5e2e68c765 | 587:54a95a587093 |
---|---|
135 sql, | 135 sql, |
136 filters, | 136 filters, |
137 params, | 137 params, |
138 defaultRepo.entityManager("land")); | 138 defaultRepo.entityManager("land")); |
139 List<Map<String, Object>> result = | 139 List<Map<String, Object>> result = |
140 QueryTools.prepareResult(query.getResultList(), results, authorization, authorization.getInfo(request)); | 140 QueryTools.prepareResult(query.getResultList(), results); |
141 if (params.containsKey("start") && params.containsKey("limit")) { | 141 if (params.containsKey("start") && params.containsKey("limit")) { |
142 int start = Integer.valueOf(params.getFirst("start")); | 142 int start = Integer.valueOf(params.getFirst("start")); |
143 int limit = Integer.valueOf(params.getFirst("limit")); | 143 int limit = Integer.valueOf(params.getFirst("limit")); |
144 List<Map<String, Object>> subList = result.subList(start, limit + start); | 144 int end = limit + start; |
145 if (start + limit > result.size()) { | |
146 end = result.size(); | |
147 } | |
148 List<Map<String, Object>> subList = result.subList(start, end); | |
149 for (Map<String, Object> entry: subList) { | |
150 boolean readOnly = | |
151 authorization.isReadOnly((Integer)entry.get("id")); | |
152 entry.put("readonly", readOnly); | |
153 } | |
145 return new Response(true, 200, subList, result.size()); | 154 return new Response(true, 200, subList, result.size()); |
146 } | 155 } |
147 return new Response(true, 200, result, result.size()); | 156 return new Response(true, 200, result, result.size()); |
148 } | 157 } |
149 | 158 |