Changeset 1269 for pykota/trunk/pykota/storages/ldapstorage.py
- Timestamp:
- 01/10/04 10:44:02 (20 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
pykota/trunk/pykota/storages/ldapstorage.py
r1259 r1269 22 22 # 23 23 # $Log$ 24 # Revision 1.47 2004/01/10 09:44:02 jalet 25 # Fixed potential accuracy problem if a user printed on several printers at 26 # the very same time. 27 # 24 28 # Revision 1.46 2004/01/08 16:33:27 jalet 25 29 # Additionnal check to not create a circular printers group. … … 285 289 def doModify(self, dn, fields, ignoreold=1) : 286 290 """Modifies an entry in the LDAP directory.""" 287 fields = self.normalizeFields(fields)288 291 try : 289 292 oldentry = self.doSearch("objectClass=*", base=dn, scope=ldap.SCOPE_BASE) 293 for (k, v) in fields.items() : 294 if type(v) == type({}) : 295 try : 296 oldvalue = v["convert"](oldentry[0][1].get(k, [0])[0]) 297 except ValueError : 298 self.tool.logdebug("Error converting %s with %s(%s)" % (oldentry[0][1].get(k), k, v)) 299 oldvalue = 0 300 if v["operator"] == '+' : 301 newvalue = oldvalue + v["value"] 302 else : 303 newvalue = oldvalue - v["value"] 304 fields[k] = str(newvalue) 305 fields = self.normalizeFields(fields) 290 306 self.tool.logdebug("QUERY : Modify(%s, %s ==> %s)" % (dn, oldentry[0][1], fields)) 291 307 self.database.modify_s(dn, modlist.modifyModlist(oldentry[0][1], fields, ignore_oldexistent=ignoreold)) … … 735 751 return self.doModify(grouppquota.ident, fields) 736 752 753 def increaseUserPQuotaPagesCounters(self, userpquota, nbpages) : 754 """Increase page counters for a user print quota.""" 755 fields = { 756 "pykotaPageCounter" : { "operator" : "+", "value" : nbpages, "convert" : int }, 757 "pykotaLifePageCounter" : { "operator" : "+", "value" : nbpages, "convert" : int }, 758 } 759 return self.doModify(userpquota.ident, fields) 760 737 761 def writeUserPQuotaPagesCounters(self, userpquota, newpagecounter, newlifepagecounter) : 738 762 """Sets the new page counters permanently for a user print quota.""" … … 742 766 } 743 767 return self.doModify(userpquota.ident, fields) 768 769 def decreaseUserAccountBalance(self, user, amount) : 770 """Decreases user's account balance from an amount.""" 771 fields = { 772 "pykotaBalance" : { "operator" : "-", "value" : amount, "convert" : float }, 773 } 774 return self.doModify(user.idbalance, fields) 744 775 745 776 def writeUserAccountBalance(self, user, newbalance, newlifetimepaid=None) : … … 825 856 """Puts a printer into a printer group.""" 826 857 if printer.ident not in pgroup.uniqueMember : 858 pgroup.uniqueMember.append(printer.ident) 827 859 fields = { 828 "uniqueMember" : pgroup.uniqueMember + [printer.ident]860 "uniqueMember" : pgroup.uniqueMember 829 861 } 830 862 self.doModify(pgroup.ident, fields)