Skip to content

Commit 29aa5a2

Browse files
committed
Filter 3d tilesets in themes.json
1 parent fd90079 commit 29aa5a2

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

src/qwc2_viewer.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1003,6 +1003,7 @@ def permitted_theme_item(self, item, identity):
10031003
# combine permissions
10041004
permitted_layers = set()
10051005
permitted_print_templates = set()
1006+
permitted_3d_tilesets = set()
10061007
for permission in wms_permissions:
10071008
# collect permitted layers
10081009
permitted_layers.update([
@@ -1023,6 +1024,7 @@ def permitted_theme_item(self, item, identity):
10231024
self.filter_item_theme_info_links(item, identity)
10241025
self.filter_item_plugin_data(item, identity)
10251026
self.filter_item_snapping_config(item, identity, permitted_layers)
1027+
self.filter_item_3d_tilesets(item, identity)
10261028

10271029
return item
10281030

@@ -1467,3 +1469,24 @@ def filter_item_snapping_config(self, item, identity, permitted_layers):
14671469
item['snapping']['snaplayers'] = list(
14681470
filter(lambda entry: entry['name'] in permitted_layers, item['snapping']['snaplayers'])
14691471
)
1472+
1473+
def filter_item_3d_tilesets(self, item, identity):
1474+
"""Filter theme item 3d tilesets by permissions.
1475+
1476+
:param obj item: Theme item
1477+
:param obj identity: User identity
1478+
"""
1479+
if 'map3d' in item:
1480+
# get permissions for theme info links
1481+
permitted_3d_tilesets = \
1482+
self.permissions_handler.resource_permissions(
1483+
'tilesets_3d', identity
1484+
)
1485+
1486+
# filter theme info links by permissions
1487+
entries = [
1488+
entry for entry in item['map3d'].get('tiles3d', [])
1489+
if entry['name'] in permitted_3d_tilesets
1490+
]
1491+
if entries:
1492+
item['map3d']['tiles3d'] = entries

0 commit comments

Comments
 (0)