mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Improve handling of invalid/expired GenomeSpace tokens in GenomeSpace export tool.
This commit is contained in:
@@ -11,6 +11,7 @@ import optparse
|
||||
import os
|
||||
import urllib
|
||||
import urllib2
|
||||
from urlparse import urljoin
|
||||
|
||||
log = logging.getLogger( "tools.genomespace.genomespace_exporter" )#( __name__ )
|
||||
|
||||
@@ -117,7 +118,7 @@ def get_genome_space_launch_apps( atm_url, url_opener, file_url, file_type ):
|
||||
break
|
||||
return webtools
|
||||
|
||||
def galaxy_code_get_genomespace_folders( genomespace_site='prod', trans=None, value=None, **kwd ):
|
||||
def galaxy_code_get_genomespace_folders( genomespace_site='prod', trans=None, value=None, base_url=None, **kwd ):
|
||||
if value:
|
||||
value = value[0]#single select, only 1 value
|
||||
def recurse_directory_dict( url_opener, cur_options, url ):
|
||||
@@ -142,19 +143,19 @@ def galaxy_code_get_genomespace_folders( genomespace_site='prod', trans=None, va
|
||||
if trans and trans.user:
|
||||
username = trans.user.preferences.get( 'genomespace_username', None )
|
||||
token = trans.user.preferences.get( 'genomespace_token', None )
|
||||
if None in ( username, token ):
|
||||
return []
|
||||
url_opener = get_cookie_opener( username, token )
|
||||
genomespace_site_dict = get_genomespace_site_urls()[ genomespace_site ]
|
||||
dm_url = genomespace_site_dict['dmServer']
|
||||
#get export root directory
|
||||
#directory_dict = get_default_directory( url_opener, dm_url ).get( 'directory', None ) #This directory contains shares and other items outside of the users home
|
||||
directory_dict = get_personal_directory( url_opener, dm_url ).get( 'directory', None ) #Limit export list to only user's home dir
|
||||
if directory_dict is None:
|
||||
return []
|
||||
#what directory to stuff this in
|
||||
recurse_directory_dict( url_opener, rval, directory_dict.get( 'url' ) )
|
||||
|
||||
if None not in ( username, token ):
|
||||
url_opener = get_cookie_opener( username, token )
|
||||
genomespace_site_dict = get_genomespace_site_urls()[ genomespace_site ]
|
||||
dm_url = genomespace_site_dict['dmServer']
|
||||
#get export root directory
|
||||
#directory_dict = get_default_directory( url_opener, dm_url ).get( 'directory', None ) #This directory contains shares and other items outside of the users home
|
||||
directory_dict = get_personal_directory( url_opener, dm_url ).get( 'directory', None ) #Limit export list to only user's home dir
|
||||
if directory_dict is not None:
|
||||
recurse_directory_dict( url_opener, rval, directory_dict.get( 'url' ) )
|
||||
if not rval:
|
||||
if not base_url:
|
||||
base_url = '..'
|
||||
rval = [ { 'name':'Your GenomeSpace token appears to be <strong>expired</strong>, please <a href="%s">reauthenticate</a>.' % ( urljoin( base_url, 'user/openid_auth?openid_provider=genomespace&auto_associate=True' ) ), 'value': '', 'options':[], 'selected': False } ]
|
||||
return rval
|
||||
|
||||
|
||||
|
||||
@@ -35,14 +35,18 @@
|
||||
<inputs>
|
||||
<param format="data" name="input1" type="data" label="Send this dataset to GenomeSpace" />
|
||||
<param name="base_url" type="baseurl" />
|
||||
<param name="subdirectory" type="drill_down" display="radio" hierarchy="exact" multiple="False" optional="True" label="Choose Target Directory" dynamic_options="galaxy_code_get_genomespace_folders( genomespace_site = 'prod', trans=__trans__, value=__value__, input_dataset=input1 )" help="Leave blank to generate automatically"/>
|
||||
<param name="subdirectory" type="drill_down" display="radio" hierarchy="exact" multiple="False" optional="True" label="Choose Target Directory" dynamic_options="galaxy_code_get_genomespace_folders( genomespace_site = 'prod', trans=__trans__, value=__value__, input_dataset=input1, base_url=base_url )" help="Leave blank to generate automatically"/>
|
||||
<param name="filename" type="text" size="80" help="Leave blank to generate automatically" />
|
||||
</inputs>
|
||||
<outputs>
|
||||
<data format="html" name="output_log" />
|
||||
</outputs>
|
||||
<help>
|
||||
This Tool allows you to export data to GenomeSpace. You must have logged in using your GenomeSpace OpenID. You can associate your OpenID credentials under the User Preferences panel.
|
||||
This Tool allows you to export data to GenomeSpace. You must have logged in using your GenomeSpace OpenID. You can associate your OpenID credentials under the User Preferences panel.
|
||||
|
||||
If you are having trouble with this tool, click here_ to refresh your GenomeSpace token before reporting errors.
|
||||
|
||||
.. _here: ${static_path}/../user/openid_auth?openid_provider=genomespace&auto_associate=True
|
||||
</help>
|
||||
<options refresh="True"/>
|
||||
<code file="genomespace_exporter.py" />
|
||||
|
||||
Reference in New Issue
Block a user