Merge 16.01 into 16.04

This commit is contained in:
carlfeberhard
2016-04-14 14:49:07 -04:00
8 changed files with 36 additions and 23 deletions
@@ -14,28 +14,40 @@ var logNamespace = 'citation';
* @name Citation
* @augments Backbone.Model
*/
var Citation = Backbone.Model.extend( baseMVC.LoggableMixin ).extend( {
var Citation = Backbone.Model.extend( baseMVC.LoggableMixin ).extend({
_logNamespace : logNamespace,
initialize: function() {
var bibtex = this.get( 'content' );
var entry = parseBibtex(bibtex).entries[0];
this.entry = entry;
var bibtex = this.attributes.content;
var parsed = BibtexParser( bibtex );
// bibtex returns successfully parsed in .entries and any parsing errors in .errors
if( parsed.errors.length ){
// the gen. form of these errors seems to be [ line, col, char, error message ]
var errors = parsed.errors.reduce( function( all, current ){ return all + '; ' + current; });
// throw new Error( 'Error parsing bibtex: ' + errors );
this.log( 'Error parsing bibtex: ' + errors );
}
this._fields = {};
var rawFields = entry.Fields;
for(var key in rawFields) {
var value = rawFields[ key ];
var lowerKey = key.toLowerCase();
this._fields[ lowerKey ] = value;
this.entry = _.first( parsed.entries );
if( this.entry ){
var rawFields = this.entry.Fields;
for( var key in rawFields ){
var value = rawFields[ key ];
var lowerKey = key.toLowerCase();
this._fields[ lowerKey ] = value;
}
}
},
entryType: function() {
return this.entry.EntryType;
return this.entry? this.entry.EntryType : undefined;
},
fields: function() {
return this._fields;
}
} );
});
//==============================================================================
/** @class Backbone collection of citations.
@@ -76,7 +76,12 @@ class RemoteUser( object ):
# seems improbable that an attacker with access to the server hosting
# Galaxy would not have access to Galaxy itself, and be attempting to
# attack the system
if self.config_secret_header is not None:
if path_info.startswith( '/api/' ):
# The API handles its own authentication via keys
# Check for API key before checking for header
return self.app( environ, start_response )
elif self.config_secret_header is not None:
if environ.get('HTTP_GX_SECRET') is None:
title = "Access to Galaxy is denied"
message = """
@@ -91,7 +96,7 @@ class RemoteUser( object ):
"""
return self.error( start_response, title, message )
if not safe_str_cmp(environ.get('HTTP_GX_SECRET'), self.config_secret_header):
if not safe_str_cmp(environ.get('HTTP_GX_SECRET', ''), self.config_secret_header):
title = "Access to Galaxy is denied"
message = """
Galaxy is configured to authenticate users via an external
@@ -161,9 +166,6 @@ class RemoteUser( object ):
"""
return self.error( start_response, title, message )
return self.app( environ, start_response )
elif path_info.startswith( '/api/' ):
# The API handles its own authentication via keys
return self.app( environ, start_response )
else:
log.debug("Unable to identify user. %s not found" % self.remote_user_header)
for k, v in environ.iteritems():
@@ -1 +1 @@
{"version":3,"file":"citation-model.js","sources":["../../../src/mvc/citation/citation-model.js"],"names":["define","parseBibtex","baseMVC","window","BibtexParser","logNamespace","Citation","Backbone","Model","extend","LoggableMixin","_logNamespace","initialize","bibtex","this","get","entry","entries","_fields","rawFields","Fields","key","value","lowerKey","toLowerCase","entryType","EntryType","fields","BaseCitationCollection","Collection","urlRoot","Galaxy","root","partial","model","HistoryCitationCollection","url","history_id","ToolCitationCollection","tool_id"],"mappings":"AAAAA,QACI,cACA,eACA,sBACD,SAAUC,EAAaC,GAI1BD,EAAcA,GAAeE,OAAOC,YAEpC,IAAIC,GAAe,WAMfC,EAAWC,SAASC,MAAMC,OAAQP,EAAQQ,eAAgBD,QAC1DE,cAAgBN,EAEhBO,WAAY,WACR,GAAIC,GAASC,KAAKC,IAAK,WACnBC,EAAQf,EAAYY,GAAQI,QAAQ,EACxCH,MAAKE,MAAQA,EACbF,KAAKI,UACL,IAAIC,GAAYH,EAAMI,MACtB,KAAI,GAAIC,KAAOF,GAAW,CACtB,GAAIG,GAAQH,EAAWE,GACnBE,EAAWF,EAAIG,aACnBV,MAAKI,QAASK,GAAaD,IAGnCG,UAAW,WACP,MAAOX,MAAKE,MAAMU,WAEtBC,OAAQ,WACJ,MAAOb,MAAKI,WAOhBU,EAAyBrB,SAASsB,WAAWpB,OAAQP,EAAQQ,eAAgBD,QAC7EE,cAAgBN,EAGhByB,QAAUC,OAAOC,KAAO,MACxBC,SAAU,EACVC,MAAQ5B,IAGR6B,EAA4BP,EAAuBnB,QAEnD2B,IAAM,WACF,MAAOtB,MAAKgB,QAAU,cAAgBhB,KAAKuB,WAAa,gBAI5DC,EAAyBV,EAAuBnB,QAEhD2B,IAAM,WACF,MAAOtB,MAAKgB,QAAU,UAAYhB,KAAKyB,QAAU,cAErDN,SAAU,GAKd,QACI3B,SAAWA,EACX6B,0BAA6BA,EAC7BG,uBAAwBA"}
{"version":3,"file":"citation-model.js","sources":["../../../src/mvc/citation/citation-model.js"],"names":["define","parseBibtex","baseMVC","window","BibtexParser","logNamespace","Citation","Backbone","Model","extend","LoggableMixin","_logNamespace","initialize","bibtex","this","attributes","content","parsed","errors","length","reduce","all","current","log","_fields","entry","_","first","entries","rawFields","Fields","key","value","lowerKey","toLowerCase","entryType","EntryType","undefined","fields","BaseCitationCollection","Collection","urlRoot","Galaxy","root","partial","model","HistoryCitationCollection","url","history_id","ToolCitationCollection","tool_id"],"mappings":"AAAAA,QACI,cACA,eACA,sBACD,SAAUC,EAAaC,GAI1BD,EAAcA,GAAeE,OAAOC,YAEpC,IAAIC,GAAe,WAMfC,EAAWC,SAASC,MAAMC,OAAQP,EAAQQ,eAAgBD,QAC1DE,cAAgBN,EAEhBO,WAAY,WAER,GAAIC,GAASC,KAAKC,WAAWC,QACzBC,EAASb,aAAcS,EAE3B,IAAII,EAAOC,OAAOC,OAAQ,CAEtB,GAAID,GAASD,EAAOC,OAAOE,OAAQ,SAAUC,EAAKC,GAAW,MAAOD,GAAM,KAAOC,GAEjFR,MAAKS,IAAK,yBAA2BL,GAKzC,GAFAJ,KAAKU,WACLV,KAAKW,MAAQC,EAAEC,MAAOV,EAAOW,SACzBd,KAAKW,MAAO,CACZ,GAAII,GAAYf,KAAKW,MAAMK,MAC3B,KAAK,GAAIC,KAAOF,GAAW,CACvB,GAAIG,GAAQH,EAAWE,GACnBE,EAAWF,EAAIG,aACnBpB,MAAKU,QAASS,GAAaD,KAIvCG,UAAW,WACP,MAAOrB,MAAKW,MAAOX,KAAKW,MAAMW,UAAYC,QAE9CC,OAAQ,WACJ,MAAOxB,MAAKU,WAQhBe,EAAyBhC,SAASiC,WAAW/B,OAAQP,EAAQQ,eAAgBD,QAC7EE,cAAgBN,EAGhBoC,QAAUC,OAAOC,KAAO,MACxBC,SAAU,EACVC,MAAQvC,IAGRwC,EAA4BP,EAAuB9B,QAEnDsC,IAAM,WACF,MAAOjC,MAAK2B,QAAU,cAAgB3B,KAAKkC,WAAa,gBAI5DC,EAAyBV,EAAuB9B,QAEhDsC,IAAM,WACF,MAAOjC,MAAK2B,QAAU,UAAY3B,KAAKoC,QAAU,cAErDN,SAAU,GAKd,QACItC,SAAWA,EACXwC,0BAA6BA,EAC7BG,uBAAwBA"}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,2 +1,2 @@
define(["libs/bibtex","mvc/base-mvc","utils/localization"],function(a,b){a=a||window.BibtexParser;var c="citation",d=Backbone.Model.extend(b.LoggableMixin).extend({_logNamespace:c,initialize:function(){var b=this.get("content"),c=a(b).entries[0];this.entry=c,this._fields={};var d=c.Fields;for(var e in d){var f=d[e],g=e.toLowerCase();this._fields[g]=f}},entryType:function(){return this.entry.EntryType},fields:function(){return this._fields}}),e=Backbone.Collection.extend(b.LoggableMixin).extend({_logNamespace:c,urlRoot:Galaxy.root+"api",partial:!0,model:d}),f=e.extend({url:function(){return this.urlRoot+"/histories/"+this.history_id+"/citations"}}),g=e.extend({url:function(){return this.urlRoot+"/tools/"+this.tool_id+"/citations"},partial:!1});return{Citation:d,HistoryCitationCollection:f,ToolCitationCollection:g}});
define(["libs/bibtex","mvc/base-mvc","utils/localization"],function(a,b){a=a||window.BibtexParser;var c="citation",d=Backbone.Model.extend(b.LoggableMixin).extend({_logNamespace:c,initialize:function(){var a=this.attributes.content,b=BibtexParser(a);if(b.errors.length){var c=b.errors.reduce(function(a,b){return a+"; "+b});this.log("Error parsing bibtex: "+c)}if(this._fields={},this.entry=_.first(b.entries),this.entry){var d=this.entry.Fields;for(var e in d){var f=d[e],g=e.toLowerCase();this._fields[g]=f}}},entryType:function(){return this.entry?this.entry.EntryType:void 0},fields:function(){return this._fields}}),e=Backbone.Collection.extend(b.LoggableMixin).extend({_logNamespace:c,urlRoot:Galaxy.root+"api",partial:!0,model:d}),f=e.extend({url:function(){return this.urlRoot+"/histories/"+this.history_id+"/citations"}}),g=e.extend({url:function(){return this.urlRoot+"/tools/"+this.tool_id+"/citations"},partial:!1});return{Citation:d,HistoryCitationCollection:f,ToolCitationCollection:g}});
//# sourceMappingURL=../../../maps/mvc/citation/citation-model.js.map
@@ -144,7 +144,6 @@
## Scripts can be loaded later since they progressively add features to
## the panels, but do not change layout
<script type="text/javascript">
## configure left panel
%if self.galaxy_config['left_panel']:
var lp = new panels.LeftPanel({ el: '#left' });