aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBonfaceKilz2021-10-26 20:51:19 +0300
committerBonfaceKilz2021-10-28 08:34:35 +0300
commita2a8f5da64a52d52354eded0b1b3adf149a234b3 (patch)
tree316dc8afb444e6ed0a29d1748e07c10f26ca4828
parent50553aa93b6fb0df15f30235c70cff7f08d93ef4 (diff)
downloadgenenetwork2-a2a8f5da64a52d52354eded0b1b3adf149a234b3.tar.gz
Use new "get_user_access_roles" when showing a trait
* wqflask/wqflask/show_trait/show_trait.py (ShowTrait): Replace `check_owner_or_admin` with `get_user_access_roles` * wqflask/wqflask/views.py (show_temp_trait): Pass `user_id` as extra arg to ShowTrait. (show_trait_page): Ditto.
-rw-r--r--wqflask/wqflask/show_trait/show_trait.py22
-rw-r--r--wqflask/wqflask/views.py12
2 files changed, 21 insertions, 13 deletions
diff --git a/wqflask/wqflask/show_trait/show_trait.py b/wqflask/wqflask/show_trait/show_trait.py
index d6355921..777efd02 100644
--- a/wqflask/wqflask/show_trait/show_trait.py
+++ b/wqflask/wqflask/show_trait/show_trait.py
@@ -20,9 +20,13 @@ from base import data_set
from utility import helper_functions
from utility.authentication_tools import check_owner_or_admin
from utility.tools import locate_ignore_error
+from utility.tools import GN_PROXY_URL
from utility.redis_tools import get_redis_conn, get_resource_id
from utility.logger import getLogger
+from wqflask.access_roles import AdminRole
+from wqflask.access_roles import DataRole
+from wqflask.resource_manager import get_user_access_roles
Redis = get_redis_conn()
ONE_YEAR = 60 * 60 * 24 * 365
@@ -38,14 +42,11 @@ logger = getLogger(__name__)
class ShowTrait:
- def __init__(self, kw):
+ def __init__(self, user_id, kw):
if 'trait_id' in kw and kw['dataset'] != "Temp":
self.temp_trait = False
self.trait_id = kw['trait_id']
helper_functions.get_species_dataset_trait(self, kw)
- self.resource_id = get_resource_id(self.dataset, self.trait_id)
- self.admin_status = check_owner_or_admin(
- resource_id=self.resource_id)
elif 'group' in kw:
self.temp_trait = True
self.trait_id = "Temp_" + kw['species'] + "_" + kw['group'] + \
@@ -62,9 +63,6 @@ class ShowTrait:
self.this_trait = create_trait(dataset=self.dataset,
name=self.trait_id,
cellid=None)
-
- self.admin_status = check_owner_or_admin(
- dataset=self.dataset, trait_id=self.trait_id)
else:
self.temp_trait = True
self.trait_id = kw['trait_id']
@@ -75,11 +73,13 @@ class ShowTrait:
self.this_trait = create_trait(dataset=self.dataset,
name=self.trait_id,
cellid=None)
-
self.trait_vals = Redis.get(self.trait_id).split()
- self.admin_status = check_owner_or_admin(
- dataset=self.dataset, trait_id=self.trait_id)
-
+ self.resource_id = get_resource_id(self.dataset,
+ self.trait_id)
+ self.admin_status = get_user_access_roles(
+ user_id=user_id,
+ resource_id=(self.resource_id or ""),
+ gn_proxy_url=GN_PROXY_URL)
# ZS: Get verify/rna-seq link URLs
try:
blatsequence = self.this_trait.blatseq
diff --git a/wqflask/wqflask/views.py b/wqflask/wqflask/views.py
index 463b7c3a..6b00bf34 100644
--- a/wqflask/wqflask/views.py
+++ b/wqflask/wqflask/views.py
@@ -735,7 +735,11 @@ def export_perm_data():
@app.route("/show_temp_trait", methods=('POST',))
def show_temp_trait_page():
logger.info(request.url)
- template_vars = show_trait.ShowTrait(request.form)
+ user_id = (g.user_session.record.get(b"user_id",
+ b"").decode("utf-8") or
+ g.user_session.record.get("user_id", ""))
+ template_vars = show_trait.ShowTrait(user_id=user_id,
+ kw=request.form)
template_vars.js_data = json.dumps(template_vars.js_data,
default=json_default_handler,
indent=" ")
@@ -745,7 +749,11 @@ def show_temp_trait_page():
@app.route("/show_trait")
def show_trait_page():
logger.info(request.url)
- template_vars = show_trait.ShowTrait(request.args)
+ user_id = (g.user_session.record.get(b"user_id",
+ b"").decode("utf-8") or
+ g.user_session.record.get("user_id", ""))
+ template_vars = show_trait.ShowTrait(user_id=user_id,
+ kw=request.args)
template_vars.js_data = json.dumps(template_vars.js_data,
default=json_default_handler,
indent=" ")