about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBonfaceKilz2021-10-15 15:47:21 +0300
committerBonfaceKilz2021-10-25 14:00:14 +0300
commit8dd3457b20b5ce96cf7e0f5029e3541d57ca116d (patch)
treec377b89bed5fe26d1f3d729afc45df4544df3d57
parentda86bc79798c05ec469d76f375741f306213e4d0 (diff)
downloadgenenetwork2-8dd3457b20b5ce96cf7e0f5029e3541d57ca116d.tar.gz
Remove "utility.hmac.hmac_creation" which causes circular imports
Hacky but re-implement `hmac_creation` as `create_hmac`
-rw-r--r--wqflask/wqflask/decorators.py24
1 files changed, 16 insertions, 8 deletions
diff --git a/wqflask/wqflask/decorators.py b/wqflask/wqflask/decorators.py
index c19e1aef..5930e7ec 100644
--- a/wqflask/wqflask/decorators.py
+++ b/wqflask/wqflask/decorators.py
@@ -1,26 +1,34 @@
 """This module contains gn2 decorators"""
-from flask import g
+import hashlib
+import hmac
+from flask import current_app, g
 from typing import Dict
 from functools import wraps
-from utility.hmac import hmac_creation
-from utility.tools import GN_PROXY_URL
 
 import json
 import requests
 
 
+def create_hmac(data: str, secret: str) -> str:
+    return hmac.new(bytearray(secret, "latin-1"),
+                    bytearray(data, "utf-8"),
+                    hashlib.sha1).hexdigest[:20]
 def edit_access_required(f):
     """Use this for endpoints where admins are required"""
     @wraps(f)
     def wrap(*args, **kwargs):
         resource_id: str = ""
         if kwargs.get("inbredset_id"):  # data type: dataset-publish
-            resource_id = hmac_creation("dataset-publish:"
-                                        f"{kwargs.get('inbredset_id')}:"
-                                        f"{kwargs.get('name')}")
+            resource_id = create_hmac(
+                data=("dataset-publish:"
+                      f"{kwargs.get('inbredset_id')}:"
+                      f"{kwargs.get('name')}"),
+                secret=current_app.config.get("SECRET_HMAC_CODE"))
         if kwargs.get("dataset_name"):  # data type: dataset-probe
-            resource_id = hmac_creation("dataset-probeset:"
-                                        f"{kwargs.get('dataset_name')}")
+            resource_id = create_hmac(
+                data=("dataset-probeset:"
+                      f"{kwargs.get('dataset_name')}"),
+                secret=current_app.config.get("SECRET_HMAC_CODE"))
         response: Dict = {}
         try:
             _user_id = g.user_session.record.get(b"user_id",