Skip to content

Commit b571ec5

Browse files
committed
Implement wildcard matching for viewer asset permissions
1 parent adbed4f commit b571ec5

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/qwc2_viewer.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import base64
2+
import fnmatch
23
import os
34
import requests
45
import tempfile
@@ -642,12 +643,14 @@ def qwc2_assets(self, path, identity, lang):
642643
'restricted_viewer_assets', []
643644
)
644645

645-
# get permitted viewer tasks
646+
# get permitted viewer assets
646647
permitted_viewer_assets = self.permissions_handler.resource_permissions(
647648
'viewer_assets', identity
648649
)
650+
path_is_restricted = next((x for x in restricted_viewer_assets if fnmatch.fnmatch(path, x)), None)
651+
path_is_permitted = next((x for x in permitted_viewer_assets if fnmatch.fnmatch(path, x)), None)
649652

650-
if path in restricted_viewer_assets and not path in permitted_viewer_assets:
653+
if path_is_restricted and not path_is_permitted:
651654
self.logger.debug("Asset %s is not permitted, returning 404" % path)
652655
return abort(404)
653656

0 commit comments

Comments
 (0)