File tree Expand file tree Collapse file tree 2 files changed +17
-2
lines changed Expand file tree Collapse file tree 2 files changed +17
-2
lines changed Original file line number Diff line number Diff line change @@ -631,13 +631,27 @@ def __update_service_urls(self, themes):
631
631
for subdir in themes .get ('subdirs' , []):
632
632
self .__update_service_urls (subdir )
633
633
634
- def qwc2_assets (self , path , lang ):
634
+ def qwc2_assets (self , path , identity , lang ):
635
635
"""Return QWC2 asset from assets/ or temporary image dir.
636
636
637
637
:param str path: Asset path
638
638
:param str lang: Asset language
639
639
"""
640
+ restricted_viewer_assets = self .resources ['qwc2_config' ].get (
641
+ 'restricted_viewer_assets' , []
642
+ )
643
+
644
+ # get permitted viewer tasks
645
+ permitted_viewer_assets = self .permissions_handler .resource_permissions (
646
+ 'viewer_assets' , identity
647
+ )
648
+
649
+ if path in restricted_viewer_assets and not path in permitted_viewer_assets :
650
+ self .logger .debug ("Asset %s is not permitted, returning 404" % path )
651
+ return abort (404 )
652
+
640
653
if not path .startswith (self .BASE64_IMAGE_ROUTE_PREFIX ):
654
+
641
655
# Special case for ui files: return translated UI
642
656
if path .lower ().endswith ('.ui' ):
643
657
return self .translate_designer_form (path , lang )
Original file line number Diff line number Diff line change @@ -100,11 +100,12 @@ def qwc2_themes():
100
100
101
101
102
102
@app .route ('/assets/<path:path>' )
103
+ @optional_auth
103
104
# lang: Optional, asset language, i.e. en-US
104
105
def qwc2_assets (path ):
105
106
qwc2_viewer = qwc2_viewer_handler ()
106
107
lang = request .args .get ('lang' , None )
107
- return qwc2_viewer .qwc2_assets (path , lang )
108
+ return qwc2_viewer .qwc2_assets (path , get_identity (), lang )
108
109
109
110
@app .route ('/data/<path:path>' )
110
111
def qwc2_data (path ):
You can’t perform that action at this time.
0 commit comments