Cache LDAP queries

This commit is contained in:
Frédéric Péters 2009-11-02 16:11:30 +01:00
parent 134d04dc80
commit 627ed9c9de
1 changed files with 4 additions and 0 deletions

View File

@ -11,6 +11,7 @@ from interfaces import IPcfAnnuaire
from zope.interface import implements
from Products.Archetypes.public import *
from Products.CMFCore.utils import getToolByName
from plone.memoize.volatile import cache, DontCache
from Acquisition import aq_base
schema = BaseSchema
@ -50,6 +51,8 @@ class PcfAnnuaireEntry:
class PcfAnnuaireService:
pass
def cache_key(method, self):
return hash(self)
class PcfAnnuaire(BaseContent):
@ -80,6 +83,7 @@ class PcfAnnuaire(BaseContent):
ldap.SCOPE_SUBTREE, 'objectClass=person')
return [PcfAnnuaireEntry(*x) for x in result]
@cache(cache_key)
def getEntries(self):
return [x for x in self.getObjectEntries() if \
x.givenName and x.company == 'Parlement de la Communauté française de Belgique']