From 63ee0539e865fb81406411374d2c74207dd3d696 Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Wed, 29 Jun 2022 21:52:49 +0200
Subject: [PATCH] MAINT: simplify error handling of insert_user and update_user

---
 src/caosdb/common/administration.py | 28 ++++++----------------------
 1 file changed, 6 insertions(+), 22 deletions(-)

diff --git a/src/caosdb/common/administration.py b/src/caosdb/common/administration.py
index cef0bd1c..98d4d282 100644
--- a/src/caosdb/common/administration.py
+++ b/src/caosdb/common/administration.py
@@ -196,17 +196,9 @@ def _update_user(name, realm=None, password=None, status=None,
         e.msg = "You are not permitted to update this user."
         raise e
     except HTTPClientError as e:
-        if e.status == 409:
-            e.msg = "Entity does not exist."
-
-        if e.status == 422:
-            e.msg = """Maybe the password does not match the required standard?
-                        The current requirements are:
-                        - at least 8 characters
-                        - at least 1 number
-                        - at least 1 lower case character
-                        - at least 1 upper case character
-                        - at least 1 special character"""
+        for elem in etree.fromstring(e.body):
+            if elem.tag == "Error":
+                e.msg = elem.get("description")
         raise
 
 
@@ -231,17 +223,9 @@ def _insert_user(name, password=None, status=None, email=None, entity=None, **kw
         e.msg = "You are not permitted to insert a new user."
         raise e
     except HTTPClientError as e:
-        if e.status == 409:
-            e.msg = "User name is already in use."
-
-        if e.status == 422:
-            e.msg = """Maybe the password does not match the required standard?
-                        The current requirements are:
-                        - at least 8 characters
-                        - at least 1 number
-                        - at least 1 lower case character
-                        - at least 1 upper case character
-                        - at least 1 special character"""
+        for elem in etree.fromstring(e.body):
+            if elem.tag == "Error":
+                e.msg = elem.get("description")
         raise e
 
 
-- 
GitLab