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 2e16ae3ec38cc00169dc9335beb57c04a0a52751 Author: Daniel Gruno <[email protected]> AuthorDate: Sun Sep 26 19:21:02 2021 -0500 feed gdpr status to user, use to change the notes at the bottom of the mgmt ui --- server/endpoints/preferences.py | 2 ++ webui/js/source/mgmt.js | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/server/endpoints/preferences.py b/server/endpoints/preferences.py index 6ca29c0..853c916 100644 --- a/server/endpoints/preferences.py +++ b/server/endpoints/preferences.py @@ -58,6 +58,8 @@ async def process( } if session.credentials.admin is True: prefs["login"]["credentials"]["admin"] = True + if server.config.ui.fully_delete: # Needed by the UI + prefs["login"]["credentials"]["fully_delete"] = True # Logging out?? if indata.get("logout"): diff --git a/webui/js/source/mgmt.js b/webui/js/source/mgmt.js index a2a6f63..c1aff8d 100644 --- a/webui/js/source/mgmt.js +++ b/webui/js/source/mgmt.js @@ -2,6 +2,7 @@ let admin_current_email = null; let audit_entries = [] let audit_page = 0; let audit_size = 30; +let mgmt_prefs = {} async function POST(url, formdata, state) { const resp = await fetch(url, { @@ -218,7 +219,11 @@ function admin_email_preview(stats, json) { div.inject(new HTML('br')); div.inject(new HTML('small', {}, "Modifying emails will remove the option to view their sources via the web interface, as the source may contain traces that reveal the edit.")) div.inject(new HTML('br')); - div.inject(new HTML('small', {}, "Emails that are removed may still be recovered by the base system administrator. For complete expungement, please contact the system administrator.")) + if (!mgmt_prefs.login.credentials.fully_delete) { + div.inject(new HTML('small', {}, "Emails that are removed may still be recovered by the base system administrator. For complete expungement, please contact the system administrator.")) + } else { + div.inject(new HTML('small', {style:{color: 'red'}}, "As GDPR enforcement is enabled on this server, emails that are removed forever from the archive when deleted, and cannot be recovered.")) + } } function admin_audit_view(state, json) { @@ -297,6 +302,7 @@ function admin_audit_next() { // Onload function for admin.html function admin_init() { + GET('%sapi/preferences.lua'.format(apiURL), (state, json) => {mgmt_prefs = json}, null); let mid = location.href.split('/').pop(); // Specific email/list handling? if (mid.length > 0) {
