Implement Open-Xchange calendar profiles
This commit is contained in:
@@ -3654,6 +3654,26 @@ def mark_calendar_sync_source(calendar: CalendarCollection, source: CalendarSync
|
||||
metadata["sync_source_id"] = source.id
|
||||
metadata["sync_href"] = source.collection_url
|
||||
metadata["sync_direction"] = source.sync_direction
|
||||
source_metadata = source.metadata_ if isinstance(source.metadata_, dict) else {}
|
||||
if source_metadata.get("integration_profile") == "open_xchange":
|
||||
for key in (
|
||||
"integration_profile",
|
||||
"transport_kind",
|
||||
"connector_profile_ref",
|
||||
"identity_mapping_ref",
|
||||
"resource_calendar_ref",
|
||||
):
|
||||
if source_metadata.get(key):
|
||||
metadata[key] = source_metadata[key]
|
||||
else:
|
||||
metadata.pop(key, None)
|
||||
resource_ref = source_metadata.get("resource_calendar_ref")
|
||||
if resource_ref:
|
||||
calendar.owner_type = "resource"
|
||||
calendar.owner_id = str(resource_ref)
|
||||
elif calendar.owner_type == "resource":
|
||||
calendar.owner_type = "tenant"
|
||||
calendar.owner_id = None
|
||||
calendar.metadata_ = metadata
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user