Skip to content

Commit 638e7bf

Browse files
committed
Fetch permissions by id for initial view
1 parent d7ab25a commit 638e7bf

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

service-map/src/main/java/fi/mml/map/mapwindow/util/OskariLayerWorker.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,20 @@ public static JSONObject getListOfMapLayersById(final List<Integer> layerIdList,
8080
*/
8181
public static JSONObject getListOfMapLayers(final List<OskariLayer> layers, final User user,
8282
final String lang, final String crs, final boolean isPublished, final boolean isSecure) {
83-
List<Resource> resources = permissionService.findResourcesByUser(user, ResourceType.maplayer);
83+
List<Resource> resources;
84+
if (layers.size() < 20) {
85+
// usually the case with loading the default app setup
86+
resources = layers.stream()
87+
.map(OskariLayer::getId)
88+
.map(id -> Integer.toString(id))
89+
.map(id -> permissionService.findResource(ResourceType.maplayer, id))
90+
.filter(Optional::isPresent)
91+
.map(Optional::get)
92+
.collect(Collectors.toList());
93+
} else {
94+
// more than 20 layers, just get all the permissions
95+
resources = permissionService.findResourcesByUser(user, ResourceType.maplayer);
96+
}
8497
return getListOfMapLayers(layers, user, lang, isSecure, crs, isPublished, new PermissionSet(resources));
8598
}
8699

0 commit comments

Comments
 (0)