mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-21 13:50:20 +08:00
CSRF protection for login, logout, and user registeration.
The approach is to use per-session CSRF tokens - this avoids many complications related to per-form tokens. We generate a sequence of hashes based on session IDs that doesn't follow the same pattern as normal database API IDs by supplying a "kind" parameter to encode_id (we use the same pattern for securing the job files API for Pulsar).
This commit is contained in:
@@ -48,6 +48,7 @@ GalaxyApp.prototype._init = function __init( options, bootstrapped ){
|
||||
self._processOptions( options );
|
||||
// special case for root
|
||||
self.root = options.root || '/';
|
||||
self.session_csrf_token = options.session_csrf_token || null;
|
||||
|
||||
self._initConfig( options.config || {} );
|
||||
self._patchGalaxy( window.Galaxy );
|
||||
@@ -76,9 +77,10 @@ GalaxyApp.prototype._init = function __init( options, bootstrapped ){
|
||||
/** default options */
|
||||
GalaxyApp.prototype.defaultOptions = {
|
||||
/** monkey patch attributes from existing window.Galaxy object? */
|
||||
patchExisting : true,
|
||||
patchExisting : true,
|
||||
/** root url of this app */
|
||||
root : '/'
|
||||
root : '/',
|
||||
session_csrf_token : null,
|
||||
};
|
||||
|
||||
/** filter to options present in defaultOptions (and default to them) */
|
||||
|
||||
@@ -285,7 +285,7 @@ var Collection = Backbone.Collection.extend({
|
||||
}
|
||||
},{
|
||||
title : _l('Logout'),
|
||||
url : 'user/logout',
|
||||
url : 'user/logout?session_csrf_token=' + Galaxy.session_csrf_token,
|
||||
target : '_top',
|
||||
divider : true
|
||||
},{
|
||||
|
||||
@@ -75,7 +75,7 @@ define( [ 'mvc/form/form-view', 'mvc/ui/ui-misc' ], function( Form, Ui ) {
|
||||
body : 'Do you want to continue and sign out of all active sessions?',
|
||||
buttons : {
|
||||
'Cancel' : function() { Galaxy.modal.hide(); },
|
||||
'Sign out' : function() { window.location.href = Galaxy.root + 'user/logout'; }
|
||||
'Sign out' : function() { window.location.href = Galaxy.root + 'user/logout?session_csrf_token=' + Galaxy.session_csrf_token; }
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -119,7 +119,9 @@ define( [ 'mvc/form/form-view', 'mvc/ui/ui-misc' ], function( Form, Ui ) {
|
||||
if( config.enable_openid && !config.use_remote_user ) {
|
||||
self._addLink( 'openids' );
|
||||
}
|
||||
self._addLink( 'logout' );
|
||||
if(Galaxy.session_csrf_token) {
|
||||
self._addLink( 'logout' );
|
||||
}
|
||||
self.$preferences.append( self._templateFooter( data ) );
|
||||
self.$el.empty().append( self.$preferences );
|
||||
});
|
||||
|
||||
@@ -254,9 +254,10 @@ class JSAppLauncher( BaseUIController ):
|
||||
"""
|
||||
root = root or web.url_for( '/' )
|
||||
js_options = {
|
||||
'root' : root,
|
||||
'user' : self.user_serializer.serialize( trans.user, self.USER_BOOTSTRAP_KEYS, trans=trans ),
|
||||
'config' : self._get_site_configuration( trans )
|
||||
'root': root,
|
||||
'user': self.user_serializer.serialize( trans.user, self.USER_BOOTSTRAP_KEYS, trans=trans ),
|
||||
'config': self._get_site_configuration( trans ),
|
||||
'session_csrf_token': trans.session_csrf_token,
|
||||
}
|
||||
return js_options
|
||||
|
||||
|
||||
@@ -880,6 +880,28 @@ class GalaxyWebTransaction( base.DefaultWebTransaction,
|
||||
use_panels=( form.use_panels or use_panels ),
|
||||
active_view=active_view )
|
||||
|
||||
@property
|
||||
def session_csrf_token(self):
|
||||
token = ''
|
||||
if self.galaxy_session:
|
||||
token = self.security.encode_id(
|
||||
self.galaxy_session.id, kind="session_csrf_token"
|
||||
)
|
||||
return token
|
||||
|
||||
def check_csrf_token(self):
|
||||
session_csrf_token = self.request.params.get("session_csrf_token", None)
|
||||
problem = False
|
||||
if not session_csrf_token:
|
||||
log.warn("No session_csrf_token set, denying request.")
|
||||
problem = True
|
||||
elif session_csrf_token != self.session_csrf_token:
|
||||
log.warn("Wrong session token found, denying request.")
|
||||
problem = True
|
||||
|
||||
if problem:
|
||||
return self.show_warn_message("Failed to authorize action.")
|
||||
|
||||
def fill_template(self, filename, **kwargs):
|
||||
"""
|
||||
Fill in a template, putting any keyword arguments on the context.
|
||||
|
||||
@@ -459,6 +459,9 @@ class User( BaseUIController, UsesFormDefinitionsMixin, CreatesUsersMixin, Creat
|
||||
refresh_frames = [ 'masthead', 'history', 'tools' ]
|
||||
else:
|
||||
refresh_frames = [ 'masthead', 'history' ]
|
||||
csrf_check = trans.check_csrf_token()
|
||||
if csrf_check:
|
||||
return csrf_check
|
||||
message, status, user, success = self.__validate_login( trans, **kwd )
|
||||
if success:
|
||||
redirect_url = redirect
|
||||
@@ -615,8 +618,12 @@ class User( BaseUIController, UsesFormDefinitionsMixin, CreatesUsersMixin, Creat
|
||||
return ( time_difference > delta or activation_grace_period == 0 )
|
||||
|
||||
@web.expose
|
||||
def logout( self, trans, logout_all=False ):
|
||||
def logout( self, trans, logout_all=False, **kwd ):
|
||||
if trans.webapp.name == 'galaxy':
|
||||
csrf_check = trans.check_csrf_token()
|
||||
if csrf_check:
|
||||
return csrf_check
|
||||
|
||||
if trans.app.config.require_login:
|
||||
refresh_frames = [ 'masthead', 'history', 'tools' ]
|
||||
else:
|
||||
@@ -689,6 +696,10 @@ class User( BaseUIController, UsesFormDefinitionsMixin, CreatesUsersMixin, Creat
|
||||
refresh_frames = [ 'masthead' ]
|
||||
# Create the user, save all the user info and login to Galaxy
|
||||
if params.get( 'create_user_button', False ):
|
||||
csrf_check = trans.check_csrf_token()
|
||||
if csrf_check:
|
||||
return csrf_check
|
||||
|
||||
# Check email and password validity
|
||||
message = self.__validate( trans, params, email, password, confirm, username )
|
||||
if not message:
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"galaxy.js","sources":["../src/galaxy.js"],"names":["define","_","Backbone","BASE_MVC","userModel","metricsLogger","addLogging","localize","GalaxyApp","options","bootstrapped","self","this","_init","DEBUGGING_KEY","NAMESPACE_KEY","localDebugging","localStorage","getItem","storageErr","console","log","prototype","extend","Events","logger","debug","_processOptions","root","_initConfig","config","_patchGalaxy","window","Galaxy","_initLogger","loggerOptions","_initLocale","_initUser","user","_setUpListeners","trigger","defaultOptions","patchExisting","defaults","k","hasOwnProperty","patchWith","consoleLogger","consoleLevel","MetricsLogger","ALL","consoleNamespaceWhitelist","split","emit","map","i","arguments","Array","slice","call","LoggableMixin","_l","userJSON","User","lastAjax","$","document","bind","ev","xhr","data","JSON","parse","err","url","location","href","debugging","setting","undefined","setItem","removeItem","debuggingNamespaces","namespaces","csv","newSettings","toString","userEmail","get"],"mappings":"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"}
|
||||
{"version":3,"file":"galaxy.js","sources":["../src/galaxy.js"],"names":["define","_","Backbone","BASE_MVC","userModel","metricsLogger","addLogging","localize","GalaxyApp","options","bootstrapped","self","this","_init","DEBUGGING_KEY","NAMESPACE_KEY","localDebugging","localStorage","getItem","storageErr","console","log","prototype","extend","Events","logger","debug","_processOptions","root","session_csrf_token","_initConfig","config","_patchGalaxy","window","Galaxy","_initLogger","loggerOptions","_initLocale","_initUser","user","_setUpListeners","trigger","defaultOptions","patchExisting","defaults","k","hasOwnProperty","patchWith","consoleLogger","consoleLevel","MetricsLogger","ALL","consoleNamespaceWhitelist","split","emit","map","i","arguments","Array","slice","call","LoggableMixin","_l","userJSON","User","lastAjax","$","document","bind","ev","xhr","data","JSON","parse","err","url","location","href","debugging","setting","undefined","setItem","removeItem","debuggingNamespaces","namespaces","csv","newSettings","toString","userEmail","get"],"mappings":"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"}
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
{"version":3,"file":"user-preferences.js","sources":["../../../src/mvc/user/user-preferences.js"],"names":["define","Form","Ui","Model","Backbone","extend","initialize","options","user_id","Galaxy","user","id","this","set","information","title","description","url","icon","password","submit_title","communication","permissions","api_key","submit_icon","toolbox_filters","openids","onclick","window","location","href","root","custom_builds","logout","modal","show","body","buttons","Cancel","hide","Sign out","View","model","message","Message","setElement","render","self","config","$","getJSON","data","$preferences","addClass","append","$el","_","escape","email","$table","use_remote_user","_addLink","enable_communication_server","has_user_tool_filters","enable_openid","_templateFooter","empty","action","get","$row","_templateLink","$a","find","on","attr","nice_total_disk_usage","enable_quotas","quota","Forms","page","form_id","ajax","type","done","response","form","inputs","operations","submit","ButtonIcon","tooltip","submit_tooltip","_submit","fail","status","persistent","JSON","stringify","create","contentType","matchModel","input","input_id","field_list","value","update","responseJSON","err_msg"],"mappings":"AACAA,QAAU,qBAAsB,kBAAoB,SAAUC,EAAMC,GAGhE,GAAIC,GAAQC,SAASD,MAAME,QACvBC,WAAY,SAAUC,GAClBA,EAAUA,MACVA,EAAQC,QAAUD,EAAQC,SAAWC,OAAOC,KAAKC,GACjDC,KAAKC,KACDL,QAAsBD,EAAQC,QAC9BM,aACIC,MAAkB,qBAClBC,YAAkB,4EAClBC,IAAkB,aAAeV,EAAQC,QAAU,sBACnDU,KAAkB,WAEtBC,UACIJ,MAAkB,kBAClBC,YAAkB,+CAClBE,KAAkB,gBAClBD,IAAkB,aAAeV,EAAQC,QAAU,mBACnDY,aAAkB,iBAEtBC,eACIN,MAAkB,gCAClBC,YAAkB,wEAClBC,IAAkB,aAAeV,EAAQC,QAAU,wBACnDU,KAAkB,iBAEtBI,aACIP,MAAkB,4CAClBC,YAAkB,sJAClBC,IAAkB,aAAeV,EAAQC,QAAU,sBACnDU,KAAkB,WAClBE,aAAkB,oBAEtBG,SACIR,MAAkB,iBAClBC,YAAkB,mDAClBC,IAAkB,aAAeV,EAAQC,QAAU,kBACnDU,KAAkB,SAClBE,aAAkB,mBAClBI,YAAkB,YAEtBC,iBACIV,MAAkB,yBAClBC,YAAkB,kEAClBC,IAAkB,aAAeV,EAAQC,QAAU,0BACnDU,KAAkB,YAClBE,aAAkB,gBAEtBM,SACIX,MAAkB,iBAClBC,YAAkB,uCAClBE,KAAkB,YAClBS,QAAkB,WACdC,OAAOC,SAASC,KAAOrB,OAAOsB,KAAO,qDAG7CC,eACIjB,MAAkB,uBAClBC,YAAkB,sDAClBE,KAAkB,WAClBS,QAAkB,WACdC,OAAOC,SAASC,KAAOrB,OAAOsB,KAAO,kBAG7CE,QACIlB,MAAkB,WAClBC,YAAkB,0CAClBE,KAAkB,cAClBS,QAAkB,WACdlB,OAAOyB,MAAMC,MACTpB,MAAU,WACVqB,KAAU,+DACVC,SACIC,OAAc,WAAa7B,OAAOyB,MAAMK,QACxCC,WAAc,WAAaZ,OAAOC,SAASC,KAAOrB,OAAOsB,KAAO,yBAUxFU,EAAOrC,SAASqC,KAAKpC,QAErBC,WAAY,WACRM,KAAK8B,MAAQ,GAAIvC,GACjBS,KAAK+B,QAAU,GAAIzC,GAAG0C,QACtBhC,KAAKiC,WAAY,UACjBjC,KAAKkC,UAGTA,OAAQ,WACJ,GAAIC,GAAOnC,KACPoC,EAASvC,OAAOuC,MACpBC,GAAEC,QAASzC,OAAOsB,KAAO,aAAetB,OAAOC,KAAKC,GAAI,SAAUwC,GAC9DJ,EAAKK,aAAeH,EAAG,UAAWI,SAAU,YACVC,OAAQP,EAAKJ,QAAQY,KACrBD,OAAQL,EAAG,SAAUK,OAAQ,qBAC7BA,OAAQL,EAAG,QAASK,OAAQ,gCAAmCE,EAAEC,OAAQN,EAAKO,OAAU,eACxFJ,OAAQP,EAAKY,OAASV,EAAG,YAAaI,SAAU,mBAC7EL,EAAOY,kBACRb,EAAKc,SAAU,eACfd,EAAKc,SAAU,aAEfb,EAAOc,6BACPf,EAAKc,SAAU,iBAEnBd,EAAKc,SAAU,iBACfd,EAAKc,SAAU,eACfd,EAAKc,SAAU,WACXb,EAAOe,uBACPhB,EAAKc,SAAU,mBAEfb,EAAOgB,gBAAkBhB,EAAOY,iBAChCb,EAAKc,SAAU,WAEnBd,EAAKc,SAAU,UACfd,EAAKK,aAAaE,OAAQP,EAAKkB,gBAAiBd,IAChDJ,EAAKQ,IAAIW,QAAQZ,OAAQP,EAAKK,iBAItCS,SAAU,SAAUM,GAChB,GAAI5D,GAAUK,KAAK8B,MAAM0B,IAAKD,GAC1BE,EAASpB,EAAGrC,KAAK0D,cAAe/D,IAChCgE,EAAKF,EAAKG,KAAM,IACfjE,GAAQoB,QACT4C,EAAGE,GAAI,QAAS,WAAalE,EAAQoB,YAErC4C,EAAGG,KAAM,OAAQjE,OAAOsB,KAAO,QAAUoC,GAE7CvD,KAAK+C,OAAOL,OAAQe,IAGxBC,cAAe,SAAU/D,GACrB,MAAQ,wCAE0CA,EAAQW,KAAO,mEAGSX,EAAQQ,MAAQ,iCAC3CR,EAAQS,YAAc,oBAKzEiD,gBAAiB,SAAU1D,GACvB,MAAQ,oDAC+BA,EAAQoE,sBAAwB,qDACzDlE,OAAOuC,OAAO4B,cAAgB,+BAAiCrE,EAAQsE,MAAQ,cAAgB,IACjG,2MAMhBC,EAAQ1E,SAASqC,KAAKpC,QAEtBC,WAAY,SAAUC,GAClBK,KAAK8B,MAAQ,GAAIvC,GAAOI,GACxBK,KAAKmE,KAAOnE,KAAK8B,MAAM0B,IAAK7D,EAAQyE,SACpCpE,KAAKiC,WAAY,UACjBjC,KAAKkC,UAGTA,OAAQ,WACJ,GAAIC,GAAOnC,IACXqC,GAAEgC,MACEhE,IAAUR,OAAOsB,KAAOnB,KAAKmE,KAAK9D,IAClCiE,KAAU,QACXC,KAAM,SAAUC,GACf,GAAI7E,GAAU0C,EAAE5C,UAAY0C,EAAKgC,KAAMK,GACnCC,EAAO,GAAIpF,IACXc,MAASR,EAAQQ,MACjBG,KAASX,EAAQW,KACjBoE,OAAS/E,EAAQ+E,OACjBC,YACIC,OAAU,GAAItF,GAAGuF,YACbC,QAAWnF,EAAQoF,eACnB5E,MAAWR,EAAQa,cAAgB,gBACnCF,KAAWX,EAAQiB,aAAe,UAClCG,QAAW,WAAaoB,EAAK6C,QAASP,EAAM9E,QAIxDwC,GAAKQ,IAAIW,QAAQZ,OAAQ+B,EAAK9B,OAC/BsC,KAAM,WACL9C,EAAKQ,IAAIW,QAAQZ,OAAQ,GAAIpD,GAAG0C,SAC5BD,QAAc,2BAA6BI,EAAKgC,KAAK9D,IAAM,IAC3D6E,OAAc,SACdC,YAAc,IACfxC,QAIXqC,QAAS,SAAUP,EAAM9E,GAErB0C,EAAEgC,MACEhE,IAAcR,OAAOsB,KAAOxB,EAAQU,IACpCkC,KAAc6C,KAAKC,UAAWZ,EAAKlC,KAAK+C,UACxChB,KAAc,MACdiB,YAAc,qBACfhB,KAAM,SAAUC,GACfC,EAAKlC,KAAKiD,WAAYhB,EAAU,SAAWiB,EAAOC,GAC9CjB,EAAKkB,WAAYD,GAAWE,MAAOH,EAAMG,SAE7CnB,EAAK1C,QAAQ8D,QAAU9D,QAASyC,EAASzC,QAASmD,OAAQ,cAC3DD,KAAM,SAAUT,GACfC,EAAK1C,QAAQ8D,QAAU9D,QAASyC,EAASsB,aAAaC,QAASb,OAAQ,eAKnF,QACIrD,KAAQA,EACRqC,MAAQA"}
|
||||
{"version":3,"file":"user-preferences.js","sources":["../../../src/mvc/user/user-preferences.js"],"names":["define","Form","Ui","Model","Backbone","extend","initialize","options","user_id","Galaxy","user","id","this","set","information","title","description","url","icon","password","submit_title","communication","permissions","api_key","submit_icon","toolbox_filters","openids","onclick","window","location","href","root","custom_builds","logout","modal","show","body","buttons","Cancel","hide","Sign out","session_csrf_token","View","model","message","Message","setElement","render","self","config","$","getJSON","data","$preferences","addClass","append","$el","_","escape","email","$table","use_remote_user","_addLink","enable_communication_server","has_user_tool_filters","enable_openid","_templateFooter","empty","action","get","$row","_templateLink","$a","find","on","attr","nice_total_disk_usage","enable_quotas","quota","Forms","page","form_id","ajax","type","done","response","form","inputs","operations","submit","ButtonIcon","tooltip","submit_tooltip","_submit","fail","status","persistent","JSON","stringify","create","contentType","matchModel","input","input_id","field_list","value","update","responseJSON","err_msg"],"mappings":"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"}
|
||||
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
File diff suppressed because one or more lines are too long
@@ -1,2 +1,2 @@
|
||||
define(["libs/underscore","libs/backbone","mvc/base-mvc","mvc/user/user-model","utils/metrics-logger","utils/add-logging","utils/localization"],function(a,b,c,d,e,f,g){function h(a,b){var c=this;return c._init(a||{},b||{})}f(h,"GalaxyApp");var i="galaxy:debug",j=i+":namespaces",k=!1;try{k="true"==localStorage.getItem(i)}catch(l){console.log(g("localStorage not available for debug flag retrieval"))}return h.prototype._init=function(c,d){var e=this;return a.extend(e,b.Events),k&&(e.logger=console,console.debug("debugging galaxy:","options:",c,"bootstrapped:",d)),e._processOptions(c),e.root=c.root||"/",e._initConfig(c.config||{}),e._patchGalaxy(window.Galaxy),e._initLogger(e.options.loggerOptions||{}),e.debug("GalaxyApp.options: ",e.options),e.debug("GalaxyApp.config: ",e.config),e.debug("GalaxyApp.logger: ",e.logger),e._initLocale(),e.debug("GalaxyApp.localize: ",e.localize),e.config=c.config||{},e.debug("GalaxyApp.config: ",e.config),e._initUser(c.user||{}),e.debug("GalaxyApp.user: ",e.user),e._setUpListeners(),e.trigger("ready",e),e},h.prototype.defaultOptions={patchExisting:!0,root:"/"},h.prototype._processOptions=function(a){var b=this,c=b.defaultOptions;b.options={};for(var d in c)c.hasOwnProperty(d)&&(b.options[d]=a.hasOwnProperty(d)?a[d]:c[d]);return b},h.prototype._initConfig=function(a){var b=this;return b.config=a,b.config.debug=k||b.config.debug,b},h.prototype._patchGalaxy=function(a){var b=this;if(b.options.patchExisting&&a)for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c])},h.prototype._initLogger=function(a){var b=this;if(b.config.debug){a.consoleLogger=a.consoleLogger||console,a.consoleLevel=a.consoleLevel||e.MetricsLogger.ALL;try{a.consoleNamespaceWhitelist=localStorage.getItem(j).split(",")}catch(d){}}return b.logger=new e.MetricsLogger(a),b.emit={},["log","debug","info","warn","error","metric"].map(function(a){b.emit[a]=function(){b.logger.emit(a,arguments[0],Array.prototype.slice.call(arguments,1))}}),b.config.debug&&(c.LoggableMixin.logger=b.logger),b},h.prototype._initLocale=function(a){var b=this;return b.debug("_initLocale:",a),b.localize=g,window._l=b.localize,b},h.prototype._initUser=function(a){var b=this;return b.debug("_initUser:",a),b.user=new d.User(a),b.user.logger=b.logger,b},h.prototype._setUpListeners=function(){var a=this;return a.lastAjax={},$(document).bind("ajaxSend",function(b,c,d){var e=d.data;try{e=JSON.parse(e)}catch(f){}a.lastAjax={url:location.href.slice(0,-1)+d.url,data:e}}),a},h.prototype.debugging=function(a){var b=this;try{if(void 0===a)return"true"===localStorage.getItem(i);if(a)return localStorage.setItem(i,!0),!0;localStorage.removeItem(i),b.debuggingNamespaces(null)}catch(c){console.log(g("localStorage not available for debug flag retrieval"))}return!1},h.prototype.debuggingNamespaces=function(a){var b=this;try{if(void 0===a){var c=localStorage.getItem(j);return"string"==typeof c?c.split(","):[]}null===a?localStorage.removeItem(j):localStorage.setItem(j,a);var d=b.debuggingNamespaces();return b.logger&&(b.logger.options.consoleNamespaceWhitelist=d),d}catch(e){console.log(g("localStorage not available for debug namespace retrieval"))}},h.prototype.toString=function(){var a=this.user?this.user.get("email")||"(anonymous)":"uninitialized";return"GalaxyApp("+a+")"},{GalaxyApp:h}});
|
||||
define(["libs/underscore","libs/backbone","mvc/base-mvc","mvc/user/user-model","utils/metrics-logger","utils/add-logging","utils/localization"],function(a,b,c,d,e,f,g){function h(a,b){var c=this;return c._init(a||{},b||{})}f(h,"GalaxyApp");var i="galaxy:debug",j=i+":namespaces",k=!1;try{k="true"==localStorage.getItem(i)}catch(l){console.log(g("localStorage not available for debug flag retrieval"))}return h.prototype._init=function(c,d){var e=this;return a.extend(e,b.Events),k&&(e.logger=console,console.debug("debugging galaxy:","options:",c,"bootstrapped:",d)),e._processOptions(c),e.root=c.root||"/",e.session_csrf_token=c.session_csrf_token||null,e._initConfig(c.config||{}),e._patchGalaxy(window.Galaxy),e._initLogger(e.options.loggerOptions||{}),e.debug("GalaxyApp.options: ",e.options),e.debug("GalaxyApp.config: ",e.config),e.debug("GalaxyApp.logger: ",e.logger),e._initLocale(),e.debug("GalaxyApp.localize: ",e.localize),e.config=c.config||{},e.debug("GalaxyApp.config: ",e.config),e._initUser(c.user||{}),e.debug("GalaxyApp.user: ",e.user),e._setUpListeners(),e.trigger("ready",e),e},h.prototype.defaultOptions={patchExisting:!0,root:"/",session_csrf_token:null},h.prototype._processOptions=function(a){var b=this,c=b.defaultOptions;b.options={};for(var d in c)c.hasOwnProperty(d)&&(b.options[d]=a.hasOwnProperty(d)?a[d]:c[d]);return b},h.prototype._initConfig=function(a){var b=this;return b.config=a,b.config.debug=k||b.config.debug,b},h.prototype._patchGalaxy=function(a){var b=this;if(b.options.patchExisting&&a)for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c])},h.prototype._initLogger=function(a){var b=this;if(b.config.debug){a.consoleLogger=a.consoleLogger||console,a.consoleLevel=a.consoleLevel||e.MetricsLogger.ALL;try{a.consoleNamespaceWhitelist=localStorage.getItem(j).split(",")}catch(d){}}return b.logger=new e.MetricsLogger(a),b.emit={},["log","debug","info","warn","error","metric"].map(function(a){b.emit[a]=function(){b.logger.emit(a,arguments[0],Array.prototype.slice.call(arguments,1))}}),b.config.debug&&(c.LoggableMixin.logger=b.logger),b},h.prototype._initLocale=function(a){var b=this;return b.debug("_initLocale:",a),b.localize=g,window._l=b.localize,b},h.prototype._initUser=function(a){var b=this;return b.debug("_initUser:",a),b.user=new d.User(a),b.user.logger=b.logger,b},h.prototype._setUpListeners=function(){var a=this;return a.lastAjax={},$(document).bind("ajaxSend",function(b,c,d){var e=d.data;try{e=JSON.parse(e)}catch(f){}a.lastAjax={url:location.href.slice(0,-1)+d.url,data:e}}),a},h.prototype.debugging=function(a){var b=this;try{if(void 0===a)return"true"===localStorage.getItem(i);if(a)return localStorage.setItem(i,!0),!0;localStorage.removeItem(i),b.debuggingNamespaces(null)}catch(c){console.log(g("localStorage not available for debug flag retrieval"))}return!1},h.prototype.debuggingNamespaces=function(a){var b=this;try{if(void 0===a){var c=localStorage.getItem(j);return"string"==typeof c?c.split(","):[]}null===a?localStorage.removeItem(j):localStorage.setItem(j,a);var d=b.debuggingNamespaces();return b.logger&&(b.logger.options.consoleNamespaceWhitelist=d),d}catch(e){console.log(g("localStorage not available for debug namespace retrieval"))}},h.prototype.toString=function(){var a=this.user?this.user.get("email")||"(anonymous)":"uninitialized";return"GalaxyApp("+a+")"},{GalaxyApp:h}});
|
||||
//# sourceMappingURL=../maps/galaxy.js.map
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -27,9 +27,10 @@ ${ h.dumps( dictionary, indent=( 2 if trans.debug else 0 ) ) }
|
||||
require([ 'require', 'galaxy' ], function( require, galaxy ){
|
||||
//TODO: global...
|
||||
window.Galaxy = new galaxy.GalaxyApp({
|
||||
root : '${h.url_for( "/" )}',
|
||||
config : ${ render_json( get_config_dict() )},
|
||||
user : ${ render_json( get_user_dict() )},
|
||||
root : '${h.url_for( "/" )}',
|
||||
config : ${ render_json( get_config_dict() )},
|
||||
user : ${ render_json( get_user_dict() )},
|
||||
session_csrf_token : '${ trans.session_csrf_token }'
|
||||
}, window.bootstrapped );
|
||||
|
||||
%if app:
|
||||
|
||||
@@ -79,6 +79,7 @@ def inherit(context):
|
||||
<div class="toolForm">
|
||||
<div class="toolFormTitle">Login</div>
|
||||
<form name="login" id="login" action="${form_action}" method="post" >
|
||||
<input type="hidden" name="session_csrf_token" value="${trans.session_csrf_token}" />
|
||||
<div class="form-row">
|
||||
<label>Username / Email Address:</label>
|
||||
<input type="text" name="login" value="${login or ''| h}" size="40"/>
|
||||
|
||||
@@ -128,6 +128,7 @@ def inherit(context):
|
||||
|
||||
<div id="registrationForm" class="toolForm">
|
||||
<form name="registration" id="registration" action="${form_action}" method="post" >
|
||||
<input type="hidden" name="session_csrf_token" value="${trans.session_csrf_token}" />
|
||||
<div class="toolFormTitle">Create account</div>
|
||||
<div class="form-row">
|
||||
<label>Email address:</label>
|
||||
|
||||
@@ -607,7 +607,14 @@ class ShedTwillTestCase( TwillTestCase ):
|
||||
self.submit_form( '1', 'login_button', login=email, redirect=redirect, password=password )
|
||||
|
||||
def galaxy_logout( self ):
|
||||
self.visit_galaxy_url( "/user/logout" )
|
||||
self.visit_galaxy_url("/")
|
||||
html = self.last_page()
|
||||
token_def_index = html.find("session_csrf_token")
|
||||
token_sep_index = html.find(":", token_def_index)
|
||||
token_quote_start_index = html.find('"', token_sep_index)
|
||||
token_quote_end_index = html.find('"', token_quote_start_index + 1)
|
||||
token = html[(token_quote_start_index + 1):token_quote_end_index]
|
||||
self.visit_galaxy_url( "/user/logout", dict(session_csrf_token=token) )
|
||||
self.check_page_for_string( "You have been logged out" )
|
||||
tc.browser.cj.clear()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user