1
0
mirror of https://github.com/webrecorder/pywb.git synced 2025-03-15 00:03:28 +01:00

acl optimize/fixes:

- optimize 'wb-manager acl match' command to not load entire file before matching
- acl match <coll_or_file): if 'coll_or_file' exists as file, use it, don't check if auto-collection exist
This commit is contained in:
Ilya Kreymer 2019-02-14 19:52:46 -08:00 committed by John Berlin
parent 9b2ae35b93
commit c65f66e03a
No known key found for this signature in database
GPG Key ID: 6EF5E4B442011B02

View File

@ -32,20 +32,24 @@ class ACLManager(CollectionsManager):
super(ACLManager, self).__init__(coll_name, must_exist=False)
# if auto collection, use default file in ./collections/<coll>/acl/<DEFAULT_FILE>
if os.path.isdir(self.curr_coll_dir):
# if target exists as a file, use that
if os.path.isfile(self.target):
self.acl_file = self.target
# otherwise, if auto collection, use default file in ./collections/<coll>/acl/<DEFAULT_FILE>
elif os.path.isdir(self.curr_coll_dir):
self.acl_file = os.path.join(self.acl_dir, self.DEFAULT_FILE)
# else, treat the 'r.coll_name' param as the filename
# else, assume filename (may not exist yet)
else:
self.acl_file = r.coll_name
self.acl_file = self.target
# for add/import, file doesn't have to exist
if r.op in ('add', 'importtxt'):
self.load_acl(False)
# otherwise, ensure file loaded successfully and log errors
else:
# for other ops (except matching), ensure entire file loads successfully, log errors
elif r.op not in ('match'):
if not self.load_acl(True):
sys.exit(2)
return