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/03/31 12:01:32 UTC

[incubator-ponymail-foal] 08/14: fix type warnings

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 374adfc40d8dad75f556a958dc85402e1ca550e1
Author: Daniel Gruno <hu...@apache.org>
AuthorDate: Wed Mar 31 12:28:04 2021 +0200

    fix type warnings
---
 server/endpoints/mgmt.py | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/server/endpoints/mgmt.py b/server/endpoints/mgmt.py
index 9818c8b..b30ee2f 100644
--- a/server/endpoints/mgmt.py
+++ b/server/endpoints/mgmt.py
@@ -34,8 +34,9 @@ async def process(
     doc = indata.get("document")
     if not docs and doc:
         docs = [doc]
-    if not session.credentials.admin or not server.config.ui.mgmt_enabled:
+    if not session.credentials or not session.credentials.admin or not server.config.ui.mgmt_enabled:
         return aiohttp.web.Response(headers={}, status=403, text="You need administrative access to use this feature.")
+    assert session.database, "No session database connection could be found!"
 
     # Viewing audit log?
     if action == "log":
@@ -44,7 +45,9 @@ async def process(
         out = []
         async for entry in plugins.auditlog.view(session, page=page, num_entries=numentries, raw=True):
             out.append(entry)
-        return out
+        return {
+            "entries": out
+        }
 
     # Deleting/hiding a document?
     elif action == "delete":
@@ -57,7 +60,7 @@ async def process(
                 await session.database.index(
                     index=session.database.dbs.mbox, body=email, id=email["id"],
                 )
-                lid = email.get("list_raw")
+                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
         return aiohttp.web.Response(headers={}, status=200, text=f"Removed {delcount} emails from archives.")
@@ -65,11 +68,12 @@ async def process(
     elif action == "edit":
         new_from = indata.get("from")
         new_subject = indata.get("subject")
-        new_list = indata.get("list")
+        new_list = indata.get("list", "")
         private = True if indata.get("private", "no") == "yes" else False
-        new_body = indata.get("body")
+        new_body = indata.get("body", "")
 
         # Check for consistency so we don't pollute the database
+        assert isinstance(doc, str) and doc, "Document ID is missing or invalid"
         assert isinstance(new_from, str), "Author field must be a text string!"
         assert isinstance(new_subject, str), "Subject field must be a text string!"
         assert isinstance(new_list, str), "List ID field must be a text string!"