diff --git a/client/galaxy/scripts/mvc/form/form-select-content.js b/client/galaxy/scripts/mvc/form/form-select-content.js index 90aef404fc3..c3445fb017c 100644 --- a/client/galaxy/scripts/mvc/form/form-select-content.js +++ b/client/galaxy/scripts/mvc/form/form-select-content.js @@ -2,9 +2,6 @@ define(['utils/utils', 'mvc/ui/ui-misc', 'mvc/ui/ui-tabs', 'mvc/tools/tools-template'], function(Utils, Ui, Tabs, ToolTemplate) { -// track current history elements -history = {}; - // hda/hdca content selector ui element var View = Backbone.View.extend({ // initialize @@ -13,6 +10,10 @@ var View = Backbone.View.extend({ this.app = app; this.options = options; + // track current history elements + this.history = {}; + + // link this var self = this; @@ -197,7 +198,7 @@ var View = Backbone.View.extend({ value: item.id }); // backup to local history - history[item.id + '_' + item.src] = item; + self.history[item.id + '_' + item.src] = item; } // update field field.update(select_options); @@ -272,7 +273,7 @@ var View = Backbone.View.extend({ // append to dataset ids for (var i in id_list) { - var details = history[id_list[i] + '_' + this.list[this.current].type]; + var details = this.history[id_list[i] + '_' + this.list[this.current].type]; if (details) { result.values.push(details); } else { @@ -315,7 +316,7 @@ var View = Backbone.View.extend({ /** Assists in identifying the batch mode */ _batch: function() { if (this.current == 'collection') { - var hdca = history[this._select().value() + '_hdca']; + var hdca = this.history[this._select().value() + '_hdca']; if (hdca && hdca.map_over_type) { return true; } diff --git a/lib/galaxy/auth/providers/ldap_ad.py b/lib/galaxy/auth/providers/ldap_ad.py index 5053641d8cb..1db54c7ff38 100644 --- a/lib/galaxy/auth/providers/ldap_ad.py +++ b/lib/galaxy/auth/providers/ldap_ad.py @@ -125,16 +125,18 @@ class LDAP(AuthProvider): else: l.simple_bind_s() - scope = ldap.SCOPE_SUBTREE - # setup search attributes = [_.strip().format(**params) for _ in options['search-fields'].split(',')] - result = l.search(_get_subs(options, 'search-base', params), scope, - _get_subs(options, 'search-filter', params), attributes) + suser = l.search_ext_s(_get_subs(options, 'search-base', params), + ldap.SCOPE_SUBTREE, + _get_subs(options, 'search-filter', params), attributes, + timeout=60, sizelimit=1) # parse results - _, suser = l.result(result, 60) + if suser is None or len(suser) == 0: + log.warn('LDAP authenticate: search returned no results') + return (failure_mode, '', '') dn, attrs = suser[0] log.debug(("LDAP authenticate: dn is %s" % dn)) log.debug(("LDAP authenticate: search attributes are %s" % attrs)) @@ -162,8 +164,12 @@ class LDAP(AuthProvider): l.protocol_version = 3 l.simple_bind_s(_get_subs( options, 'bind-user', params), _get_subs(options, 'bind-password', params)) + whoami = l.whoami_s() + log.debug("LDAP authenticate: whoami is %s", whoami) + if whoami is None: + raise RuntimeError('LDAP authenticate: anonymous bind') except Exception: - log.exception('LDAP authenticate: bind exception') + log.warn('LDAP authenticate: bind exception', exc_info=True) return (failure_mode, '', '') log.debug('LDAP authentication successful') diff --git a/lib/galaxy/tools/parser/xml.py b/lib/galaxy/tools/parser/xml.py index 61e1005c1a8..23719e2fe94 100644 --- a/lib/galaxy/tools/parser/xml.py +++ b/lib/galaxy/tools/parser/xml.py @@ -300,6 +300,7 @@ def _test_elem_to_dict(test_elem, i): outputs=__parse_output_elems(test_elem), output_collections=__parse_output_collection_elems(test_elem), inputs=__parse_input_elems(test_elem, i), + expect_num_outputs=test_elem.get("expect_num_outputs"), command=__parse_assert_list_from_elem( test_elem.find("assert_command") ), stdout=__parse_assert_list_from_elem( test_elem.find("assert_stdout") ), stderr=__parse_assert_list_from_elem( test_elem.find("assert_stderr") ), diff --git a/static/maps/mvc/form/form-select-content.js.map b/static/maps/mvc/form/form-select-content.js.map index f24e5f85588..5f84d12f797 100644 --- a/static/maps/mvc/form/form-select-content.js.map +++ b/static/maps/mvc/form/form-select-content.js.map @@ -1 +1 @@ -{"version":3,"file":"form-select-content.js","sources":["../../../src/mvc/form/form-select-content.js"],"names":["define","Utils","Ui","history","View","Backbone","extend","initialize","app","options","this","self","setElement","list","radio_buttons","mode","type","multiple","current","extensions","textify","hda_error","hdca_error","push","icon","value","tooltip","select_single","Select","optional","error_text","onchange","trigger","field","select_multiple","searchable","select_collection","button_type","RadioButton","data","refresh","$batch","$","template_batch","n_buttons","_","size","button_width","$el","append","Math","max","i","css","margin-left","update","undefined","on","wait","unwait","_update","select_options","item","label","hid","name","id","src","hda","hdca","new_value","values","length","err","console","debug","id_list","_select","Array","result","batch","_batch","details","sort","a","b","show","hide","map_over_type"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"form-select-content.js","sources":["../../../src/mvc/form/form-select-content.js"],"names":["define","Utils","Ui","View","Backbone","extend","initialize","app","options","this","history","self","setElement","list","radio_buttons","mode","type","multiple","current","extensions","textify","hda_error","hdca_error","push","icon","value","tooltip","select_single","Select","optional","error_text","onchange","trigger","field","select_multiple","searchable","select_collection","button_type","RadioButton","data","refresh","$batch","$","template_batch","n_buttons","_","size","button_width","$el","append","Math","max","i","css","margin-left","update","undefined","on","wait","unwait","_update","select_options","item","label","hid","name","id","src","hda","hdca","new_value","values","length","err","console","debug","id_list","_select","Array","result","batch","_batch","details","sort","a","b","show","hide","map_over_type"],"mappings":"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"} \ No newline at end of file diff --git a/static/scripts/mvc/form/form-select-content.js b/static/scripts/mvc/form/form-select-content.js index d695833fc70..b071f73ba0a 100644 --- a/static/scripts/mvc/form/form-select-content.js +++ b/static/scripts/mvc/form/form-select-content.js @@ -1,2 +1,2 @@ -define(["utils/utils","mvc/ui/ui-misc","mvc/ui/ui-tabs","mvc/tools/tools-template"],function(a,b){history={};var c=Backbone.View.extend({initialize:function(c,d){this.app=c,this.options=d;var e=this;this.setElement('
'),this.list={};var f=[];this.mode="data_collection"==d.type?"collection":d.multiple?"multiple":"single",this.current=this.mode,this.list={};var g=a.textify(d.extensions),h="No dataset available.";g&&(h="No "+g+" dataset available.");var i="No dataset list available.";g&&(i="No "+g+" dataset collection available."),"single"==this.mode&&(f.push({icon:"fa-file-o",value:"single",tooltip:"Single dataset"}),this.select_single=new b.Select.View({optional:d.optional,error_text:h,onchange:function(){e.trigger("change")}}),this.list.single={field:this.select_single,type:"hda"}),("single"==this.mode||"multiple"==this.mode)&&(f.push({icon:"fa-files-o",value:"multiple",tooltip:"Multiple datasets"}),this.select_multiple=new b.Select.View({multiple:!0,searchable:!1,optional:d.optional,error_text:h,onchange:function(){e.trigger("change")}}),this.list.multiple={field:this.select_multiple,type:"hda"}),("single"==this.mode||"multiple"==this.mode||"collection"==this.mode)&&(f.push({icon:"fa-folder-o",value:"collection",tooltip:"Dataset collection"}),this.select_collection=new b.Select.View({error_text:i,optional:d.optional,onchange:function(){e.trigger("change")}}),this.list.collection={field:this.select_collection,type:"hdca"}),this.button_type=new b.RadioButton.View({value:this.current,data:f,onchange:function(a){e.current=a,e.refresh(),e.trigger("change")}}),this.$batch=$(this.template_batch());var j=_.size(this.list),k=0;j>1&&(this.$el.append(this.button_type.$el),k=Math.max(0,35*_.size(this.list))+"px");for(var l in this.list)this.$el.append(this.list[l].field.$el.css({"margin-left":k}));this.$el.append(this.$batch.css({"margin-left":k})),this.update(d.data),void 0!==this.options.value&&this.value(this.options.value),this.refresh(),this.on("change",function(){d.onchange&&d.onchange(e.value())})},wait:function(){for(var a in this.list)this.list[a].field.wait()},unwait:function(){for(var a in this.list)this.list[a].field.unwait()},update:function(a){function b(a,b){if(a){var c=[];for(var d in b){var e=b[d];c.push({label:e.hid+": "+e.name,value:e.id}),history[e.id+"_"+e.src]=e}a.update(c)}}b(this.select_single,a.hda),b(this.select_multiple,a.hda),b(this.select_collection,a.hdca)},value:function(a){if(void 0!==a)if(a&&a.values)try{var b=[];for(var c in a.values)b.push(a.values[c].id);a&&a.values.length>0&&"hdca"==a.values[0].src?(this.current="collection",this.select_collection.value(b[0])):"multiple"==this.mode?(this.current="multiple",this.select_multiple.value(b)):(this.current="single",this.select_single.value(b[0]))}catch(d){console.debug("tools-select-content::value() - Skipped.")}else for(var c in this.list)this.list[c].field.value(null);this.refresh();var e=this._select().value();if(null===e)return null;if(e instanceof Array||(e=[e]),0===e.length)return null;var f={batch:this._batch(),values:[]};for(var c in e){var g=history[e[c]+"_"+this.list[this.current].type];if(!g)return null;f.values.push(g)}return f.values.sort(function(a,b){return a.hid-b.hid}),f},refresh:function(){this.button_type.value(this.current);for(var a in this.list){var b=this.list[a].field.$el;this.current==a?b.show():b.hide()}this._batch()?this.$batch.show():this.$batch.hide()},_select:function(){return this.list[this.current].field},_batch:function(){if("collection"==this.current){var a=history[this._select().value()+"_hdca"];if(a&&a.map_over_type)return!0}return"single"!=this.current&&"single"==this.mode?!0:!1},template_batch:function(){return'