Move included content verification to separate function, fix root content.json file path verification
This commit is contained in:
parent
dd11f87673
commit
13157eea1e
1 changed files with 13 additions and 7 deletions
|
@ -732,11 +732,24 @@ class ContentManager(object):
|
||||||
self.site.worker_manager.failTask(task)
|
self.site.worker_manager.failTask(task)
|
||||||
raise VerifyError("Site too large %sB > %sB, aborting task..." % (site_size, site_size_limit))
|
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":
|
if inner_path == "content.json":
|
||||||
self.site.settings["size"] = site_size
|
self.site.settings["size"] = site_size
|
||||||
self.site.settings["size_optional"] = site_size_optional
|
self.site.settings["size_optional"] = site_size_optional
|
||||||
return True # Root content.json is passed
|
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
|
# Load include details
|
||||||
rules = self.getRules(inner_path, content)
|
rules = self.getRules(inner_path, content)
|
||||||
if not rules:
|
if not rules:
|
||||||
|
@ -753,10 +766,6 @@ class ContentManager(object):
|
||||||
content_size_optional, rules["max_size_optional"])
|
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
|
# Filename limit
|
||||||
if rules.get("files_allowed"):
|
if rules.get("files_allowed"):
|
||||||
for file_inner_path in content["files"].keys():
|
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"):
|
if rules.get("includes_allowed") is False and content.get("includes"):
|
||||||
raise VerifyError("Includes not allowed")
|
raise VerifyError("Includes not allowed")
|
||||||
|
|
||||||
self.site.settings["size"] = site_size
|
|
||||||
self.site.settings["size_optional"] = site_size_optional
|
|
||||||
|
|
||||||
return True # All good
|
return True # All good
|
||||||
|
|
||||||
# Verify file validity
|
# Verify file validity
|
||||||
|
|
Loading…
Reference in a new issue