You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ponymail.apache.org by hu...@apache.org on 2021/09/25 18:52:44 UTC

[incubator-ponymail-foal] branch master updated (d036c55 -> c2dd0f8)

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

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


    from d036c55  tighten up matching of date span
     new 1fd2c75  add in a "full gdpr" config switch
     new 56b1570  Add a full delete if told to.
     new 6a60be0  document admin interface
     new c2dd0f8  link to where admins are defined

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 INSTALL.md                      | 17 +++++++++++++++++
 server/endpoints/mgmt.py        | 14 +++++++++++---
 server/plugins/configuration.py |  2 ++
 3 files changed, 30 insertions(+), 3 deletions(-)

[incubator-ponymail-foal] 01/04: add in a "full gdpr" config switch

Posted by hu...@apache.org.
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 1fd2c75bbae106dc6fe2127515907dfb70e48152
Author: Daniel Gruno <hu...@apache.org>
AuthorDate: Sat Sep 25 13:49:37 2021 -0500

    add in a "full gdpr" config switch
---
 server/plugins/configuration.py | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/server/plugins/configuration.py b/server/plugins/configuration.py
index 7a89d78..66abfab 100644
--- a/server/plugins/configuration.py
+++ b/server/plugins/configuration.py
@@ -40,6 +40,7 @@ class UIConfig:
     traceback: bool
     mgmt_enabled: bool
     focus_domain: str
+    fully_delete: bool
 
     def __init__(self, subyaml: dict):
         self.wordcloud = bool(subyaml.get("wordcloud", False))
@@ -51,6 +52,7 @@ class UIConfig:
         # Set to false in yaml to redirect to stderr instead.
         self.traceback = subyaml.get("traceback", True)
         self.mgmt_enabled = bool(subyaml.get("mgmtconsole", False))  # Whether to enable online mgmt component or not
+        self.fully_delete = bool(subyaml.get("true_gdpr", False))  # Whether to enforce full expunging of deleted emails
         # Default to all lists, "*". Use "" for host. Wildcard subdomain globs also supported
         self.focus_domain = subyaml.get("focus_domain", "*")
 

[incubator-ponymail-foal] 02/04: Add a full delete if told to.

Posted by hu...@apache.org.
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 <hu...@apache.org>
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

[incubator-ponymail-foal] 04/04: link to where admins are defined

Posted by hu...@apache.org.
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 c2dd0f88497bc4fb4280cccf53cce47ca49e4b65
Author: Daniel Gruno <hu...@apache.org>
AuthorDate: Sat Sep 25 13:52:35 2021 -0500

    link to where admins are defined
---
 INSTALL.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/INSTALL.md b/INSTALL.md
index f1e51cd..3d808f2 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -188,7 +188,7 @@ ui:
 ~~~
 
 The administrative interface can be accessed by clicking on the yellow cog in the context menu 
-of an email.
+of an email. Admins are defined in the [OAuth](#setting-up-oauth) configuration.
 
 
 ## Hiding tracebacks from users

[incubator-ponymail-foal] 03/04: document admin interface

Posted by hu...@apache.org.
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 6a60be072b0ed8e5ccb0423f9b70e211759f185a
Author: Daniel Gruno <hu...@apache.org>
AuthorDate: Sat Sep 25 13:51:26 2021 -0500

    document admin interface
---
 INSTALL.md | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/INSTALL.md b/INSTALL.md
index 1588470..f1e51cd 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -11,6 +11,7 @@
     - [Setting up Google OAuth](#setting-up-google-oauth)
     - [Setting up GitHub OAuth](#setting-up-github-oauth)
   - [Setting up web replies](#setting-up-web-replies)
+  - [Online Management Console](#online-management-console)
   - [Hiding tracebacks from users](#hiding-tracebacks-from-users)
   - [Archiving options](#archiving-options)
 
@@ -174,6 +175,22 @@ separating each entry with a single space:
 Only users logged in via authoritative OAuth will be able to compose replies via the
 web interface.
 
+## Online Management Console
+the `ui` paragraph of the server configuration allows for enabling an administrative interface
+for editing or removing emails from the archives. To enable this, set `mgmtconsole` to `true`.
+For true GDPR compliance (deleting an email deletes from disk), set `true_gdpr` to `true`. 
+If left out or set to false, deleted emails are merely hidden, and can be recovered at a later stage.
+
+~~~yaml
+ui:
+  mgmtconsole:     true
+  true_gdpr:       true
+~~~
+
+The administrative interface can be accessed by clicking on the yellow cog in the context menu 
+of an email.
+
+
 ## Hiding tracebacks from users
 By default, API errors will include a full traceback for debugging purposes. If you wish to 
 instead have this be printed to the system journal (`stderr`), you can set the `traceback`