Fence Mail provider and mailbox recovery effects
This commit is contained in:
@@ -86,6 +86,20 @@ def cache_mailbox_folders(
|
||||
.filter(MailMailboxFolderIndex.tenant_id == tenant_id, MailMailboxFolderIndex.profile_id == profile_id)
|
||||
.all()
|
||||
}
|
||||
expected_names = {folder.name for folder in result.folders}
|
||||
removed_names = set(existing) - expected_names
|
||||
if removed_names:
|
||||
(
|
||||
session.query(MailMailboxMessageIndex)
|
||||
.filter(
|
||||
MailMailboxMessageIndex.tenant_id == tenant_id,
|
||||
MailMailboxMessageIndex.profile_id == profile_id,
|
||||
MailMailboxMessageIndex.folder.in_(removed_names),
|
||||
)
|
||||
.delete(synchronize_session=False)
|
||||
)
|
||||
for name in removed_names:
|
||||
session.delete(existing[name])
|
||||
for folder in result.folders:
|
||||
row = existing.get(folder.name)
|
||||
if row is None:
|
||||
|
||||
Reference in New Issue
Block a user