mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Cache user roles during WorkRequestContext lifetime
This speeds up building the tool module by a factor of 5.
This commit is contained in:
@@ -22,6 +22,7 @@ class WorkRequestContext(ProvidesAppContext, ProvidesUserContext, ProvidesHistor
|
||||
self.app = app
|
||||
self.security = app.security
|
||||
self.__user = user
|
||||
self.__user_current_roles = None
|
||||
self.__history = history
|
||||
self.api_inherit_admin = False
|
||||
self.workflow_building_mode = workflow_building_mode
|
||||
@@ -40,6 +41,12 @@ class WorkRequestContext(ProvidesAppContext, ProvidesUserContext, ProvidesHistor
|
||||
"""Return the current user if logged in or None."""
|
||||
return self.__user
|
||||
|
||||
def get_current_user_roles(self):
|
||||
if not self.__user_current_roles:
|
||||
if self.__user:
|
||||
self.__user_current_roles = self.__user.all_roles()
|
||||
return self.__user_current_roles
|
||||
|
||||
def set_user(self, user):
|
||||
"""Set the current user."""
|
||||
raise NotImplementedError("Cannot change users from a work request context.")
|
||||
|
||||
Reference in New Issue
Block a user