Commit 94af0172 authored by Vincent Pelletier's avatar Vincent Pelletier

Add a cache on getUserByLogin because it's called from multiple method during...

Add a cache on getUserByLogin because it's called from multiple method during PAS internal execution flow.


git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@15327 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent f0af7bf8
...@@ -172,10 +172,13 @@ class ERP5UserManager(BasePlugin): ...@@ -172,10 +172,13 @@ class ERP5UserManager(BasePlugin):
# (no docstring to prevent publishing) # (no docstring to prevent publishing)
if not login: if not login:
return [] return []
def _getUserByLogin(login):
import pdb; pdb.set_trace()
# because we aren't logged in, we have to create our own # because we aren't logged in, we have to create our own
# SecurityManager to be able to access the Catalog # SecurityManager to be able to access the Catalog
sm = getSecurityManager() sm = getSecurityManager()
if sm.getUser().getId() != SUPER_USER: if sm.getUser() != SUPER_USER:
newSecurityManager(self, self.getUser(SUPER_USER)) newSecurityManager(self, self.getUser(SUPER_USER))
try: try:
...@@ -195,6 +198,11 @@ class ERP5UserManager(BasePlugin): ...@@ -195,6 +198,11 @@ class ERP5UserManager(BasePlugin):
raise _SWALLOWABLE_PLUGIN_EXCEPTIONS[0] raise _SWALLOWABLE_PLUGIN_EXCEPTIONS[0]
finally: finally:
setSecurityManager(sm) setSecurityManager(sm)
return result
_getUserByLogin = CachingMethod(_getUserByLogin,
id='ERP5UserManager_getUserByLogin',
cache_factory='erp5_content_short')
result = _getUserByLogin(login)
return [item.getObject() for item in result] return [item.getObject() for item in result]
classImplements( ERP5UserManager classImplements( ERP5UserManager
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment