This is an automated email from the ASF dual-hosted git repository.

humbedooh pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-ponymail-foal.git

commit 56b15709cdec22fead59e16541d21f6d6fe18273
Author: Daniel Gruno <[email protected]>
AuthorDate: Sat Sep 25 13:51:16 2021 -0500

    Add a full delete if told to.
---
 server/endpoints/mgmt.py | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/server/endpoints/mgmt.py b/server/endpoints/mgmt.py
index 68bed57..af031f7 100644
--- a/server/endpoints/mgmt.py
+++ b/server/endpoints/mgmt.py
@@ -57,9 +57,17 @@ async def process(
             email = await plugins.messages.get_email(session, permalink=doc)
             if email and isinstance(email, dict) and 
plugins.aaa.can_access_email(session, email):
                 email["deleted"] = True
-                await session.database.index(
-                    index=session.database.dbs.mbox, body=email, 
id=email["id"],
-                )
+                if server.config.ui.fully_delete and email["id"] and 
email["dbid"]:  # Full on GDPR blast?
+                    await session.database.delete(
+                        index=session.database.dbs.mbox, id=email["id"],
+                    )
+                    await session.database.delete(
+                        index=session.database.dbs.source, id=email["dbid"],
+                    )
+                else:  # Standard behavior: hide the email from everyone.
+                    await session.database.index(
+                        index=session.database.dbs.mbox, body=email, 
id=email["id"],
+                    )
                 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")
                 delcount += 1

Reply via email to