Show
Ignore:
Timestamp:
10/06/03 15:12:28 (21 years ago)
Author:
jalet
Message:

More work on caching

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • pykota/trunk/pykota/storages/ldapstorage.py

    r1133 r1137  
    2121# 
    2222# $Log$ 
     23# Revision 1.29  2003/10/06 13:12:28  jalet 
     24# More work on caching 
     25# 
    2326# Revision 1.28  2003/10/03 12:27:02  jalet 
    2427# Several optimizations, especially with LDAP backend 
     
    266269            group.AccountBalance = 0.0 
    267270            group.LifeTimePaid = 0.0 
    268             group.Members = self.getGroupMembers(group) 
    269             for member in group.Members : 
     271            for member in self.getGroupMembers(group) : 
    270272                if member.Exists : 
    271273                    group.AccountBalance += member.AccountBalance 
     
    346348                grouppquota.PageCounter = 0 
    347349                grouppquota.LifePageCounter = 0 
    348                 if (not hasattr(group, "Members")) or (group.Members is None) : 
    349                     group.Members = self.getGroupMembers(group) 
    350350                usernamesfilter = "".join(["(pykotaUserName=%s)" % member.Name for member in group.Members]) 
    351351                result = self.doSearch("(&(objectClass=pykotaUserPQuota)(pykotaPrinterName=%s)(|%s))" % (printer.Name, usernamesfilter), ["pykotaPageCounter", "pykotaLifePageCounter"], base=self.info["userquotabase"]) 
     
    384384        return lastjob 
    385385         
    386     def getUserGroups(self, user) :         
     386    def getGroupMembersFromBackend(self, group) :         
     387        """Returns the group's members list.""" 
     388        groupmembers = [] 
     389        result = self.doSearch("(&(objectClass=pykotaGroup)(|(pykotaGroupName=%s)(%s=%s)))" % (group.Name, self.info["grouprdn"], group.Name), [self.info["groupmembers"]], base=self.info["groupbase"]) 
     390        if result : 
     391            for username in result[0][1].get(self.info["groupmembers"], []) : 
     392                groupmembers.append(self.getUser(username)) 
     393        return groupmembers         
     394         
     395    def getUserGroupsFromBackend(self, user) :         
    387396        """Returns the user's groups list.""" 
    388397        groups = [] 
     
    392401                groups.append(self.getGroup(fields.get(self.info["grouprdn"])[0])) 
    393402        return groups         
    394          
    395     def getGroupMembers(self, group) :         
    396         """Returns the group's members list.""" 
    397         groupmembers = [] 
    398         result = self.doSearch("(&(objectClass=pykotaGroup)(|(pykotaGroupName=%s)(%s=%s)))" % (group.Name, self.info["grouprdn"], group.Name), [self.info["groupmembers"]], base=self.info["groupbase"]) 
    399         if result : 
    400             for username in result[0][1].get(self.info["groupmembers"], []) : 
    401                 groupmembers.append(self.getUser(username)) 
    402         return groupmembers         
    403403         
    404404    def getMatchingPrinters(self, printerpattern) :