aboutsummaryrefslogtreecommitdiff
path: root/wqflask
diff options
context:
space:
mode:
authorzsloan2020-07-06 14:47:04 -0500
committerzsloan2020-07-06 14:47:04 -0500
commit0a0d733af4b6c61c381a1c4ec9fa162182a057e9 (patch)
tree2fb77bcbce7650af08b647fc3089e89d596169ba /wqflask
parentaa06c83ecd4d36878ac0aadd75ab2bd461f44344 (diff)
downloadgenenetwork2-0a0d733af4b6c61c381a1c4ec9fa162182a057e9.tar.gz
Fixed some of the logic with how traits are authenticated to avoid situation where a trait is authenticated twice
Diffstat (limited to 'wqflask')
-rw-r--r--wqflask/base/trait.py30
-rw-r--r--wqflask/maintenance/set_resource_defaults.py6
-rw-r--r--wqflask/utility/redis_tools.py5
3 files changed, 14 insertions, 27 deletions
diff --git a/wqflask/base/trait.py b/wqflask/base/trait.py
index 7fc016f3..4c3e790c 100644
--- a/wqflask/base/trait.py
+++ b/wqflask/base/trait.py
@@ -49,7 +49,6 @@ def create_trait(**kw):
if "view" in permissions['data']:
the_trait = GeneralTrait(**kw)
if the_trait.dataset.type != "Temp":
-
the_trait = retrieve_trait_info(the_trait, the_trait.dataset, get_qtl_info=kw.get('get_qtl_info'))
return the_trait
else:
@@ -144,6 +143,7 @@ class GeneralTrait(object):
formatted = self.post_publication_description
else:
formatted = "Not available"
+
return formatted
@property
@@ -388,27 +388,14 @@ def retrieve_trait_info(trait, dataset, get_qtl_info=False):
try:
response = requests.get(the_url).content
- if response.strip() == "no-access":
- trait.view = False
- return trait
- else:
- trait_info = json.loads(response)
- except:
- resource_info = get_resource_info(resource_id)
- if resource_info:
- default_permissions = resource_info['default_mask']['data']
- else:
- default_permissions = webqtlConfig.DEFAULT_PRIVILEGES
- if 'view' not in default_permissions:
- trait.view = False
- return trait
-
+ trait_info = json.loads(response)
+ except: #ZS: I'm assuming the trait is viewable if the try fails for some reason; it should never reach this point unless the user has privileges, since that's dealt with in create_trait
if dataset.type == 'Publish':
query = """
SELECT
- PublishXRef.Id, Publication.PubMed_ID,
+ PublishXRef.Id, InbredSet.InbredSetCode, Publication.PubMed_ID,
Phenotype.Pre_publication_description, Phenotype.Post_publication_description, Phenotype.Original_description,
- Phenotype.Pre_publication_abbreviation, Phenotype.Post_publication_abbreviation,
+ Phenotype.Pre_publication_abbreviation, Phenotype.Post_publication_abbreviation, PublishXRef.mean,
Phenotype.Lab_code, Phenotype.Submitter, Phenotype.Owner, Phenotype.Authorized_Users,
Publication.Authors, Publication.Title, Publication.Abstract,
Publication.Journal, Publication.Volume, Publication.Pages,
@@ -472,11 +459,10 @@ def retrieve_trait_info(trait, dataset, get_qtl_info=False):
if trait_info:
trait.haveinfo = True
-
for i, field in enumerate(dataset.display_fields):
- holder = trait_info[i]
- #if isinstance(trait_info[i], basestring):
- # holder = holder.encode('latin1')
+ holder = trait_info[i]
+ # if isinstance(trait_info[i], basestring):
+ # holder = unicode(holder.strip(codecs.BOM_UTF8), 'utf-8', "ignore")
setattr(trait, field, holder)
if dataset.type == 'Publish':
diff --git a/wqflask/maintenance/set_resource_defaults.py b/wqflask/maintenance/set_resource_defaults.py
index ddb3b17b..54fd8e7e 100644
--- a/wqflask/maintenance/set_resource_defaults.py
+++ b/wqflask/maintenance/set_resource_defaults.py
@@ -77,7 +77,7 @@ def insert_probeset_resources(default_owner_id):
"admin": "not-admin"}
resource_ob['group_masks'] = {}
- add_resource(resource_ob)
+ add_resource(resource_ob, update=False)
def insert_publish_resources(default_owner_id):
current_resources = Redis.hgetall("resources")
@@ -108,7 +108,7 @@ def insert_publish_resources(default_owner_id):
resource_ob['group_masks'] = {}
- add_resource(resource_ob)
+ add_resource(resource_ob, update=False)
else:
continue
@@ -139,7 +139,7 @@ def insert_geno_resources(default_owner_id):
"admin": "not-admin"}
resource_ob['group_masks'] = {}
- add_resource(resource_ob)
+ add_resource(resource_ob, update=False)
def insert_resources(default_owner_id):
current_resources = get_resources()
diff --git a/wqflask/utility/redis_tools.py b/wqflask/utility/redis_tools.py
index 8a5f95ee..6c912a23 100644
--- a/wqflask/utility/redis_tools.py
+++ b/wqflask/utility/redis_tools.py
@@ -285,13 +285,14 @@ def get_resource_info(resource_id):
else:
return None
-def add_resource(resource_info):
+def add_resource(resource_info, update=True):
if 'trait' in resource_info['data']:
resource_id = hmac.hmac_creation('{}:{}:{}'.format(str(resource_info['type']), str(resource_info['data']['dataset']), str(resource_info['data']['trait'])))
else:
resource_id = hmac.hmac_creation('{}:{}'.format(str(resource_info['type']), str(resource_info['data']['dataset'])))
- Redis.hset("resources", resource_id, json.dumps(resource_info))
+ if not Redis.hexists("resources", resource_id):
+ Redis.hset("resources", resource_id, json.dumps(resource_info))
return resource_info