Changeset 1137 for pykota/trunk/pykota/storages/ldapstorage.py
- Timestamp:
- 10/06/03 15:12:28 (21 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
pykota/trunk/pykota/storages/ldapstorage.py
r1133 r1137 21 21 # 22 22 # $Log$ 23 # Revision 1.29 2003/10/06 13:12:28 jalet 24 # More work on caching 25 # 23 26 # Revision 1.28 2003/10/03 12:27:02 jalet 24 27 # Several optimizations, especially with LDAP backend … … 266 269 group.AccountBalance = 0.0 267 270 group.LifeTimePaid = 0.0 268 group.Members = self.getGroupMembers(group) 269 for member in group.Members : 271 for member in self.getGroupMembers(group) : 270 272 if member.Exists : 271 273 group.AccountBalance += member.AccountBalance … … 346 348 grouppquota.PageCounter = 0 347 349 grouppquota.LifePageCounter = 0 348 if (not hasattr(group, "Members")) or (group.Members is None) :349 group.Members = self.getGroupMembers(group)350 350 usernamesfilter = "".join(["(pykotaUserName=%s)" % member.Name for member in group.Members]) 351 351 result = self.doSearch("(&(objectClass=pykotaUserPQuota)(pykotaPrinterName=%s)(|%s))" % (printer.Name, usernamesfilter), ["pykotaPageCounter", "pykotaLifePageCounter"], base=self.info["userquotabase"]) … … 384 384 return lastjob 385 385 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) : 387 396 """Returns the user's groups list.""" 388 397 groups = [] … … 392 401 groups.append(self.getGroup(fields.get(self.info["grouprdn"])[0])) 393 402 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 groupmembers403 403 404 404 def getMatchingPrinters(self, printerpattern) :