sharing/config: check for invalid permission combination
This commit is contained in:
@@ -69,7 +69,11 @@ def positive_float(value: Any) -> float:
|
||||
def rights_permission(value: Any) -> str:
|
||||
for permission in value:
|
||||
if permission not in rights.INTERNAL_PERMISSIONS:
|
||||
raise ValueError("unsupported permssion %r found in: %r" % (permission, value))
|
||||
raise ValueError("unsupported permission %r found in: %r" % (permission, value))
|
||||
if "p" in value and "P" in value:
|
||||
raise ValueError("invalid combination of permissions (P+p) found in %r", value)
|
||||
if "e" in value and "E" in value:
|
||||
raise ValueError("invalid combination of permissions (E+e) found in %r", value)
|
||||
return value
|
||||
|
||||
|
||||
|
||||
@@ -749,6 +749,10 @@ class BaseSharing:
|
||||
for permission in request_data[key]:
|
||||
if permission not in rights.INTERNAL_PERMISSIONS:
|
||||
return httputils.bad_request("Invalid value for Permissions")
|
||||
if "p" in request_data[key] and "P" in request_data[key]:
|
||||
return httputils.bad_request("Invalid combination of Permissions (P+p)")
|
||||
if "e" in request_data[key] and "E" in request_data[key]:
|
||||
return httputils.bad_request("Invalid combination of Permissions (E+e)")
|
||||
elif key == "PathOrToken":
|
||||
if ShareType == "token":
|
||||
if not re.search('^/.token/' + TOKEN_PATTERN_V1 + '/$', request_data[key]):
|
||||
|
||||
Reference in New Issue
Block a user