about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBonfaceKilz2021-10-25 12:07:05 +0300
committerBonfaceKilz2021-10-25 14:00:14 +0300
commit696a6c6dc758e16b582e20419819acd5b17a75f1 (patch)
tree0bcd5d4241ddc570f0716972b490a80f62893341
parentbe0e73c1db12806580fa5c541eceec2a54c10ad3 (diff)
downloadgenenetwork2-696a6c6dc758e16b582e20419819acd5b17a75f1.tar.gz
Add "POST /resource-management/<resource_id>/users/search"
-rw-r--r--wqflask/wqflask/resource_manager.py20
1 files changed, 19 insertions, 1 deletions
diff --git a/wqflask/wqflask/resource_manager.py b/wqflask/wqflask/resource_manager.py
index 9487bab5..58c0b5cb 100644
--- a/wqflask/wqflask/resource_manager.py
+++ b/wqflask/wqflask/resource_manager.py
@@ -11,7 +11,7 @@ from flask import request
 from flask import url_for
 
 from urllib.parse import urljoin
-from typing import Dict
+from typing import Dict, Tuple
 
 from wqflask.decorators import edit_access_required
 from wqflask.decorators import edit_admins_access_required
@@ -187,3 +187,21 @@ def view_resource_owner(resource_id: str):
     return render_template(
         "admin/change_resource_owner.html",
         resource_id=resource_id)
+
+
+@resource_management.route("<resource_id>/users/search", methods=('POST',))
+@edit_admins_access_required
+@login_required
+def search_user(resource_id: str):
+    results = {}
+    for user in (users := redis.from_url(
+            current_app.config["REDIS_URL"],
+            decode_responses=True).hgetall("users")):
+        user = json.loads(users[user])
+        for q in (request.form.get("user_name"),
+                  request.form.get("user_email")):
+            if q and (q in user.get("email_address") or
+                      q in user.get("full_name")):
+                results[user.get("user_id", "")] = user
+    return json.dumps(tuple(results.values()))
+