Swap from list in universe to a separate config file, add simple UI for managing

This commit is contained in:
Dannon Baker
2015-07-27 11:46:37 -04:00
parent 4afc756c61
commit 29ce33ef34
3 changed files with 27 additions and 1 deletions
+12 -1
View File
@@ -252,7 +252,8 @@ class Configuration( object ):
self.log_actions = string_as_bool( kwargs.get( 'log_actions', 'False' ) )
self.log_events = string_as_bool( kwargs.get( 'log_events', 'False' ) )
self.sanitize_all_html = string_as_bool( kwargs.get( 'sanitize_all_html', True ) )
self.sanitize_whitelist = [ x.strip() for x in kwargs.get('sanitize_whitelist', '').split(',')]
self.sanitize_whitelist_file = resolve_path( kwargs.get( 'sanitize_whitelist_file', "config/sanitize_whitelist.txt" ), self.root )
self.reload_sanitize_whitelist()
self.serve_xss_vulnerable_mimetypes = string_as_bool( kwargs.get( 'serve_xss_vulnerable_mimetypes', False ) )
self.trust_ipython_notebook_conversion = string_as_bool( kwargs.get( 'trust_ipython_notebook_conversion', False ) )
self.enable_old_display_applications = string_as_bool( kwargs.get( "enable_old_display_applications", "True" ) )
@@ -471,6 +472,16 @@ class Configuration( object ):
else:
return None
def reload_sanitize_whitelist( self ):
self.sanitize_whitelist = []
try:
with open(self.sanitize_whitelist_file, 'rt') as f:
for line in f.readlines():
if not line.startswith("#"):
self.sanitize_whitelist.append(line.strip())
except IOError:
log.warning("Sanitize log file %s does not exist, continuing with no tools whitelisted.")
def __parse_config_file_options( self, kwargs ):
"""
Backwards compatibility for config files moved to the config/ dir.
+14
View File
@@ -1123,6 +1123,20 @@ class Admin( object ):
job=job,
message="<a href='jobs'>Back</a>" )
@web.expose
@web.require_admin
def sanitize_whitelist( self, trans, submit_whitelist=False, tools_to_whitelist=None ):
if submit_whitelist:
# write config/sanitize_whitelist.txt file with new whitelist and update in-memory list.
new_whitelist = sorted([tid for tid in tools_to_whitelist if tid in trans.app.toolbox.tools_by_id])
with open(os.path.join('config', 'sanitize_whitelist.txt'), 'wt') as f:
f.write("\n".join(new_whitelist))
trans.app.config.sanitize_whitelist = new_whitelist
# dispatch a message to reload list for other processes
return trans.fill_template( '/webapps/galaxy/admin/sanitize_whitelist.mako',
tools=trans.app.toolbox.tools_by_id )
# ---- Utility methods -------------------------------------------------------
@@ -74,6 +74,7 @@
<div class="toolTitle"><a href="${h.url_for( controller='admin', action='reload_tool' )}" target="galaxy_main">Reload a tool's configuration</a></div>
<div class="toolTitle"><a href="${h.url_for( controller='admin', action='review_tool_migration_stages' )}" target="galaxy_main">Review tool migration stages</a></div>
<div class="toolTitle"><a href="${h.url_for( controller='admin', action='tool_errors' )}" target="galaxy_main">View Tool Error Logs</a></div>
<div class="toolTitle"><a href="${h.url_for( controller='admin', action='sanitize_whitelist' )}" target="galaxy_main">Manage Display Whitelist</a></div>
</div>
</div>
<div class="toolSectionPad"></div>