Merge pull request #2060 from pbiering/sharing-info-overlay
sharing info hook extension related to properties overlay
This commit is contained in:
@@ -253,7 +253,7 @@ Can be selected by `HTTP_ACCEPT` - default is equal to provided `CONTENT_TYPE`
|
|||||||
|
|
||||||
##### API Hook "info"
|
##### API Hook "info"
|
||||||
|
|
||||||
Shows what kind of ShareTypes are supported
|
Shows what is active/supported like ShareTypes(Feature), Conversions or permission to create or use properties overlay (depending on config options)
|
||||||
|
|
||||||
* Output: text/plain|application/json
|
* Output: text/plain|application/json
|
||||||
|
|
||||||
@@ -270,6 +270,8 @@ PermittedCreateCollectionByMap=True
|
|||||||
FeatureEnabledCollectionByToken=True
|
FeatureEnabledCollectionByToken=True
|
||||||
PermittedCreateCollectionByToken=True
|
PermittedCreateCollectionByToken=True
|
||||||
SupportedConversions=(bday none)
|
SupportedConversions=(bday none)
|
||||||
|
PermittedPropertiesOverlay=True
|
||||||
|
SupportedPropertiesOverlay=(C:calendar-description ICAL:calendar-color CR:addressbook-description INF:addressbook-color D:displayname)
|
||||||
```
|
```
|
||||||
|
|
||||||
* json->json, parsed with `jq`
|
* json->json, parsed with `jq`
|
||||||
@@ -284,7 +286,9 @@ curl -u user:$userpw --silent -H "accept: application/json" -d "" http://localho
|
|||||||
"PermittedCreateCollectionByMap": true,
|
"PermittedCreateCollectionByMap": true,
|
||||||
"FeatureEnabledCollectionByToken": true,
|
"FeatureEnabledCollectionByToken": true,
|
||||||
"PermittedCreateCollectionByToken": true,
|
"PermittedCreateCollectionByToken": true,
|
||||||
"SupportedConversions": ["bday", "none"]
|
"SupportedConversions": ["bday", "none"],
|
||||||
|
"PermittedPropertiesOverlay": true,
|
||||||
|
"SupportedPropertiesOverlay": ["C:calendar-description", "ICAL:calendar-color", "CR:addressbook-description", "INF:addressbook-color", "D:displayname"]
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -117,6 +117,8 @@ API_TYPES_V1: dict[str, type] = {
|
|||||||
"Conversion": str,
|
"Conversion": str,
|
||||||
"Actions": dict,
|
"Actions": dict,
|
||||||
"SupportedConversions": list,
|
"SupportedConversions": list,
|
||||||
|
"PermittedPropertiesOverlay": bool,
|
||||||
|
"SupportedPropertiesOverlay": list,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1261,8 +1263,10 @@ class BaseSharing:
|
|||||||
if ShareType in ["all", "token"]:
|
if ShareType in ["all", "token"]:
|
||||||
answer['FeatureEnabledCollectionByToken'] = self.sharing_collection_by_token
|
answer['FeatureEnabledCollectionByToken'] = self.sharing_collection_by_token
|
||||||
answer['PermittedCreateCollectionByToken'] = self.permit_create_token
|
answer['PermittedCreateCollectionByToken'] = self.permit_create_token
|
||||||
if ShareType in ["all", "map", "token"]:
|
if ShareType in SHARE_TYPES:
|
||||||
answer['SupportedConversions'] = CONVERSIONS_WHITELIST
|
answer['SupportedConversions'] = CONVERSIONS_WHITELIST
|
||||||
|
answer['PermittedPropertiesOverlay'] = self.permit_properties_overlay
|
||||||
|
answer['SupportedPropertiesOverlay'] = OVERLAY_PROPERTIES_WHITELIST
|
||||||
|
|
||||||
# action: TOGGLE
|
# action: TOGGLE
|
||||||
elif action in API_SHARE_TOGGLES_V1:
|
elif action in API_SHARE_TOGGLES_V1:
|
||||||
|
|||||||
@@ -366,6 +366,7 @@ class TestSharingApiSanity(BaseTest):
|
|||||||
"collection_by_map": "True",
|
"collection_by_map": "True",
|
||||||
"collection_by_token": "True",
|
"collection_by_token": "True",
|
||||||
"permit_create_map": "True",
|
"permit_create_map": "True",
|
||||||
|
"permit_properties_overlay": "True",
|
||||||
"permit_create_token": "True"}
|
"permit_create_token": "True"}
|
||||||
})
|
})
|
||||||
logging.info("\n*** check API hook: info/all")
|
logging.info("\n*** check API hook: info/all")
|
||||||
@@ -376,7 +377,16 @@ class TestSharingApiSanity(BaseTest):
|
|||||||
assert answer_dict['FeatureEnabledCollectionByToken'] is True, f'FeatureEnabledCollectionByToken {db_type}'
|
assert answer_dict['FeatureEnabledCollectionByToken'] is True, f'FeatureEnabledCollectionByToken {db_type}'
|
||||||
assert answer_dict['PermittedCreateCollectionByMap'] is True, f'PermittedCreateCollectionByMap {db_type}'
|
assert answer_dict['PermittedCreateCollectionByMap'] is True, f'PermittedCreateCollectionByMap {db_type}'
|
||||||
assert answer_dict['PermittedCreateCollectionByToken'] is True, f'PermittedCreateCollectionByToken {db_type}'
|
assert answer_dict['PermittedCreateCollectionByToken'] is True, f'PermittedCreateCollectionByToken {db_type}'
|
||||||
assert answer_dict['SupportedConversions'] == ["bday", "none"]
|
assert answer_dict['SupportedConversions'] == list(sharing.CONVERSIONS_WHITELIST)
|
||||||
|
assert answer_dict['PermittedPropertiesOverlay'] is True
|
||||||
|
assert answer_dict['SupportedPropertiesOverlay'] == list(sharing.OVERLAY_PROPERTIES_WHITELIST)
|
||||||
|
|
||||||
|
logging.info("\n*** check API hook: info/all (2)")
|
||||||
|
self.configure({"sharing": {"permit_properties_overlay": "False"}})
|
||||||
|
json_dict = {}
|
||||||
|
_, headers, answer = self._sharing_api_json("all", "info", check=200, login="owner:ownerpw", json_dict=json_dict)
|
||||||
|
answer_dict = json.loads(answer)
|
||||||
|
assert answer_dict['PermittedPropertiesOverlay'] is False
|
||||||
|
|
||||||
def test_sharing_api_list_with_auth(self) -> None:
|
def test_sharing_api_list_with_auth(self) -> None:
|
||||||
"""POST/list with authentication."""
|
"""POST/list with authentication."""
|
||||||
|
|||||||
Reference in New Issue
Block a user