From 350cf407c95938e4f6a0eb0c3e64ed930521c08e Mon Sep 17 00:00:00 2001 From: hagen-danswer Date: Fri, 6 Dec 2024 08:12:07 -0800 Subject: [PATCH] explicitly set page and attachment restrictions and space keys --- .../connectors/confluence/connector.py | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/backend/danswer/connectors/confluence/connector.py b/backend/danswer/connectors/confluence/connector.py index 6bacf9097d31..c909fe90219b 100644 --- a/backend/danswer/connectors/confluence/connector.py +++ b/backend/danswer/connectors/confluence/connector.py @@ -277,9 +277,11 @@ class ConfluenceConnector(LoadConnector, PollConnector, SlimConnector): ): # If the page has restrictions, add them to the perm_sync_data # These will be used by doc_sync.py to sync permissions - perm_sync_data = { - "restrictions": page.get("restrictions", {}), - "space_key": page.get("space", {}).get("key"), + page_restrictions = page.get("restrictions") + page_space_key = page.get("space", {}).get("key") + page_perm_sync_data = { + "restrictions": page_restrictions or {}, + "space_key": page_space_key, } doc_metadata_list.append( @@ -289,7 +291,7 @@ class ConfluenceConnector(LoadConnector, PollConnector, SlimConnector): page["_links"]["webui"], self.is_cloud, ), - perm_sync_data=perm_sync_data, + perm_sync_data=page_perm_sync_data, ) ) attachment_cql = f"type=attachment and container='{page['id']}'" @@ -301,6 +303,19 @@ class ConfluenceConnector(LoadConnector, PollConnector, SlimConnector): ): if not validate_attachment_filetype(attachment): continue + attachment_restrictions = attachment.get("restrictions") + if not attachment_restrictions: + attachment_restrictions = page_restrictions + + attachment_space_key = attachment.get("space", {}).get("key") + if not attachment_space_key: + attachment_space_key = page_space_key + + attachment_perm_sync_data = { + "restrictions": attachment_restrictions or {}, + "space_key": attachment_space_key, + } + doc_metadata_list.append( SlimDocument( id=build_confluence_document_id( @@ -308,7 +323,7 @@ class ConfluenceConnector(LoadConnector, PollConnector, SlimConnector): attachment["_links"]["webui"], self.is_cloud, ), - perm_sync_data=perm_sync_data, + perm_sync_data=attachment_perm_sync_data, ) ) if len(doc_metadata_list) > _SLIM_DOC_BATCH_SIZE: