Merge pull request #2068 from pbiering/sharing-review-7
Sharing review 7
This commit is contained in:
@@ -330,6 +330,8 @@ def xml_propfind_response(
|
|||||||
privileges.append("D:write-properties")
|
privileges.append("D:write-properties")
|
||||||
privileges.append("D:write-content")
|
privileges.append("D:write-content")
|
||||||
|
|
||||||
|
if self._sharing._enabled and not share:
|
||||||
|
# only offer this privileges if sharing is enabled and not being a share (nested sharing is not supported)
|
||||||
if ("T" in raw_permissions or (self._sharing.permit_create_token and "t" not in raw_permissions)):
|
if ("T" in raw_permissions or (self._sharing.permit_create_token and "t" not in raw_permissions)):
|
||||||
privileges.append("RADICALE:share-token")
|
privileges.append("RADICALE:share-token")
|
||||||
if ("M" in raw_permissions or (self._sharing.permit_create_map and "m" not in raw_permissions)):
|
if ("M" in raw_permissions or (self._sharing.permit_create_map and "m" not in raw_permissions)):
|
||||||
|
|||||||
@@ -35,8 +35,6 @@ Permissions:
|
|||||||
- t: deny create of token-based sharing of collection in case permit_create_token=True (>= 3.7.0)
|
- t: deny create of token-based sharing of collection in case permit_create_token=True (>= 3.7.0)
|
||||||
- M: permit create of map-based sharing of collection in case permit_create_map=False (>= 3.7.0)
|
- M: permit create of map-based sharing of collection in case permit_create_map=False (>= 3.7.0)
|
||||||
- m: deny create of map-based sharing of collection in case permit_create_map=True (>= 3.7.0)
|
- m: deny create of map-based sharing of collection in case permit_create_map=True (>= 3.7.0)
|
||||||
|
|
||||||
Permissions only supported so far in share permissions:
|
|
||||||
- P: permit properties overlay in case permit_properties_overlay=False (>= 3.7.0)
|
- P: permit properties overlay in case permit_properties_overlay=False (>= 3.7.0)
|
||||||
- p: deny properties overlay in case permit_properties_overlay=True (>= 3.7.0)
|
- p: deny properties overlay in case permit_properties_overlay=True (>= 3.7.0)
|
||||||
- E: enable enforce properties overlay in case enforce_properties_overlay=False (>= 3.7.0)
|
- E: enable enforce properties overlay in case enforce_properties_overlay=False (>= 3.7.0)
|
||||||
|
|||||||
@@ -68,6 +68,11 @@ class Rights(rights.BaseRights):
|
|||||||
collection_pattern = rights_config_parser.get(section, "collection")
|
collection_pattern = rights_config_parser.get(section, "collection")
|
||||||
allowed_groups = rights_config_parser.get(section, "groups", fallback="").split(",")
|
allowed_groups = rights_config_parser.get(section, "groups", fallback="").split(",")
|
||||||
permission = rights_config_parser.get(section, "permissions")
|
permission = rights_config_parser.get(section, "permissions")
|
||||||
|
# test for conflicting permissions
|
||||||
|
if "p" in permission and "P" in permission:
|
||||||
|
raise RuntimeError("conflicting p+P found")
|
||||||
|
if "e" in permission and "E" in permission:
|
||||||
|
raise RuntimeError("conflicting e+E found")
|
||||||
self._rights_config[section] = {"user_pattern": user_pattern, "collection_pattern": collection_pattern,
|
self._rights_config[section] = {"user_pattern": user_pattern, "collection_pattern": collection_pattern,
|
||||||
"allowed_groups": allowed_groups, "permission": permission}
|
"allowed_groups": allowed_groups, "permission": permission}
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
Reference in New Issue
Block a user