This is an automated email from the ASF dual-hosted git repository. sebb pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-ponymail-foal.git
commit 52825eb0a829c52592850f9251e50941a129a452 Author: Sebb <[email protected]> AuthorDate: Thu Dec 16 18:48:41 2021 +0000 "id" not a valid mbox property --- server/endpoints/mgmt.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/server/endpoints/mgmt.py b/server/endpoints/mgmt.py index 97c5c5b..c11e6e1 100644 --- a/server/endpoints/mgmt.py +++ b/server/endpoints/mgmt.py @@ -55,9 +55,9 @@ async def process( assert isinstance(doc, str), "Document ID must be a string" email = await plugins.messages.get_email(session, permalink=doc) if email and isinstance(email, dict) and plugins.aaa.can_access_email(session, email): - if server.config.ui.fully_delete and email["id"] and email["dbid"]: # Full on GDPR blast? + if server.config.ui.fully_delete and email["mid"] and email["dbid"]: # Full on GDPR blast? await session.database.delete( - index=session.database.dbs.db_mbox, id=email["id"], + index=session.database.dbs.db_mbox, id=email["mid"], ) await session.database.delete( index=session.database.dbs.db_source, id=email["dbid"], @@ -65,7 +65,7 @@ async def process( else: # Standard behavior: hide the email from everyone. email["deleted"] = True await session.database.update( - index=session.database.dbs.db_mbox, body={"doc": email}, id=email["id"], + index=session.database.dbs.db_mbox, body={"doc": email}, id=email["mid"], ) lid = email.get("list_raw", "??") await plugins.auditlog.add_entry(session, action="delete", target=doc, lid=lid, log=f"Removed email {doc} from {lid} archives") @@ -80,7 +80,7 @@ async def process( if email and isinstance(email, dict) and plugins.aaa.can_access_email(session, email): email["deleted"] = True await session.database.update( - index=session.database.dbs.db_mbox, body={"doc": email}, id=email["id"], + index=session.database.dbs.db_mbox, body={"doc": email}, id=email["mid"], ) lid = email.get("list_raw", "??") await plugins.auditlog.add_entry(session, action="hide", target=doc, lid=lid, log=f"Hid email {doc} from {lid} archives") @@ -95,7 +95,7 @@ async def process( if email and isinstance(email, dict) and plugins.aaa.can_access_email(session, email): email["deleted"] = False await session.database.update( - index=session.database.dbs.db_mbox, body={"doc": email}, id=email["id"], + index=session.database.dbs.db_mbox, body={"doc": email}, id=email["mid"], ) lid = email.get("list_raw", "??") await plugins.auditlog.add_entry(session, action="unhide", target=doc, lid=lid, log=f"Unhid email {doc} from {lid} archives") @@ -163,8 +163,10 @@ async def process( email["attachments"] = attach_edit # Save edited email + if "id" in email: # id is not a valid property for mbox + del email["id"] await session.database.update( - index=session.database.dbs.db_mbox, body={"doc": email}, id=email["id"], + index=session.database.dbs.db_mbox, body={"doc": email}, id=email["mid"], ) # Fetch source, mark as deleted (modified) and save IF anything but just privacy changed
