Move included content verification to separate function, fix root content.json file path verification

This commit is contained in:
shortcutme 2017-07-13 19:32:54 +02:00
parent dd11f87673
commit 13157eea1e
No known key found for this signature in database
GPG key ID: 5B63BAE6CB9613AE

View file

@ -732,11 +732,24 @@ class ContentManager(object):
self.site.worker_manager.failTask(task)
raise VerifyError("Site too large %sB > %sB, aborting task..." % (site_size, site_size_limit))
# Verify valid filenames
for file_relative_path in content.get("files", {}).keys() + content.get("files_optional", {}).keys():
if not self.isValidRelativePath(file_relative_path):
raise VerifyError("Invalid relative path: %s" % file_relative_path)
if inner_path == "content.json":
self.site.settings["size"] = site_size
self.site.settings["size_optional"] = site_size_optional
return True # Root content.json is passed
else:
if self.verifyContentInclude(inner_path, content, content_size, content_size_optional):
self.site.settings["size"] = site_size
self.site.settings["size_optional"] = site_size_optional
return True
else:
return False
def verifyContentInclude(self, inner_path, content, content_size, content_size_optional):
# Load include details
rules = self.getRules(inner_path, content)
if not rules:
@ -753,10 +766,6 @@ class ContentManager(object):
content_size_optional, rules["max_size_optional"])
)
for file_relative_path in content.get("files", {}).keys() + content.get("files_optional", {}).keys():
if not self.isValidRelativePath(file_relative_path):
raise VerifyError("Invalid relative path: %s" % file_relative_path)
# Filename limit
if rules.get("files_allowed"):
for file_inner_path in content["files"].keys():
@ -772,9 +781,6 @@ class ContentManager(object):
if rules.get("includes_allowed") is False and content.get("includes"):
raise VerifyError("Includes not allowed")
self.site.settings["size"] = site_size
self.site.settings["size_optional"] = site_size_optional
return True # All good
# Verify file validity