From cdaa20858a4b20f0080a851c6380c41e610f1346 Mon Sep 17 00:00:00 2001 From: Eric Rasche Date: Fri, 13 Jan 2017 17:15:55 +0000 Subject: [PATCH 1/3] Add whoami API --- lib/galaxy/webapps/galaxy/api/configuration.py | 17 ++++++++++++++++- lib/galaxy/webapps/galaxy/buildapp.py | 4 ++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/galaxy/webapps/galaxy/api/configuration.py b/lib/galaxy/webapps/galaxy/api/configuration.py index 7187a67f8ef..a042985107d 100644 --- a/lib/galaxy/webapps/galaxy/api/configuration.py +++ b/lib/galaxy/webapps/galaxy/api/configuration.py @@ -5,9 +5,10 @@ and configuration settings. from galaxy.web import _future_expose_api_anonymous_and_sessionless as expose_api_anonymous_and_sessionless from galaxy.web import _future_expose_api as expose_api +from galaxy.web import _future_expose_api as expose_api_anonymous from galaxy.web import require_admin from galaxy.web.base.controller import BaseAPIController -from galaxy.managers import configuration +from galaxy.managers import configuration, users from galaxy.queue_worker import send_control_task import logging @@ -20,6 +21,20 @@ class ConfigurationController( BaseAPIController ): super( ConfigurationController, self ).__init__( app ) self.config_serializer = configuration.ConfigSerializer( app ) self.admin_config_serializer = configuration.AdminConfigSerializer( app ) + self.user_manager = users.UserManager( app ) + + @expose_api_anonymous + def whoami( self, trans, **kwd ): + """ + def whoami( self, trans, **kwd ) + * GET /api/authenticate/whoami + returns information about the current authenticated user + + :returns: user information in json format + :rtype: dict + """ + current_user = self.user_manager.current_user( trans ) + return current_user.to_dict() @expose_api_anonymous_and_sessionless def index( self, trans, **kwd ): diff --git a/lib/galaxy/webapps/galaxy/buildapp.py b/lib/galaxy/webapps/galaxy/buildapp.py index 3c47b47bd28..c56bb38ce61 100644 --- a/lib/galaxy/webapps/galaxy/buildapp.py +++ b/lib/galaxy/webapps/galaxy/buildapp.py @@ -309,6 +309,10 @@ def populate_api_routes( webapp, app ): webapp.mapper.connect( "configuration_version", "/api/version", controller="configuration", action="version", conditions=dict( method=[ "GET" ] ) ) + webapp.mapper.connect( "api_whoami", + "/api/whoami", controller='configuration', + action='whoami', + conditions=dict( method=[ "GET" ] ) ) webapp.mapper.resource( 'datatype', 'datatypes', path_prefix='/api', From b242dc3ab18c003bd3c8219305730be22d0729e9 Mon Sep 17 00:00:00 2001 From: Eric Rasche Date: Fri, 13 Jan 2017 18:08:41 +0000 Subject: [PATCH 2/3] Fix docs concerns --- lib/galaxy/webapps/galaxy/api/configuration.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/galaxy/webapps/galaxy/api/configuration.py b/lib/galaxy/webapps/galaxy/api/configuration.py index a042985107d..095a3faafd1 100644 --- a/lib/galaxy/webapps/galaxy/api/configuration.py +++ b/lib/galaxy/webapps/galaxy/api/configuration.py @@ -26,11 +26,10 @@ class ConfigurationController( BaseAPIController ): @expose_api_anonymous def whoami( self, trans, **kwd ): """ - def whoami( self, trans, **kwd ) - * GET /api/authenticate/whoami - returns information about the current authenticated user + GET /api/authenticate/whoami + Return information about the current authenticated user. - :returns: user information in json format + :returns: dictionary with user information :rtype: dict """ current_user = self.user_manager.current_user( trans ) From 8c46cd5afcb63ece8d37b5051be723a359c1cc71 Mon Sep 17 00:00:00 2001 From: Eric Rasche Date: Fri, 13 Jan 2017 18:46:56 +0000 Subject: [PATCH 3/3] Correct API path --- lib/galaxy/webapps/galaxy/api/configuration.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/galaxy/webapps/galaxy/api/configuration.py b/lib/galaxy/webapps/galaxy/api/configuration.py index 095a3faafd1..0f24c1f8263 100644 --- a/lib/galaxy/webapps/galaxy/api/configuration.py +++ b/lib/galaxy/webapps/galaxy/api/configuration.py @@ -26,7 +26,7 @@ class ConfigurationController( BaseAPIController ): @expose_api_anonymous def whoami( self, trans, **kwd ): """ - GET /api/authenticate/whoami + GET /api/whoami Return information about the current authenticated user. :returns: dictionary with user information