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):
631631 for subdir in themes .get ('subdirs' , []):
632632 self .__update_service_urls (subdir )
633633
634- def qwc2_assets (self , path , lang ):
634+ def qwc2_assets (self , path , identity , lang ):
635635 """Return QWC2 asset from assets/ or temporary image dir.
636636
637637 :param str path: Asset path
638638 :param str lang: Asset language
639639 """
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+
640653 if not path .startswith (self .BASE64_IMAGE_ROUTE_PREFIX ):
654+
641655 # Special case for ui files: return translated UI
642656 if path .lower ().endswith ('.ui' ):
643657 return self .translate_designer_form (path , lang )
Original file line number Diff line number Diff line change @@ -100,11 +100,12 @@ def qwc2_themes():
100100
101101
102102@app .route ('/assets/<path:path>' )
103+ @optional_auth
103104# lang: Optional, asset language, i.e. en-US
104105def qwc2_assets (path ):
105106 qwc2_viewer = qwc2_viewer_handler ()
106107 lang = request .args .get ('lang' , None )
107- return qwc2_viewer .qwc2_assets (path , lang )
108+ return qwc2_viewer .qwc2_assets (path , get_identity (), lang )
108109
109110@app .route ('/data/<path:path>' )
110111def qwc2_data (path ):
You can’t perform that action at this time.
0 commit comments