Show
Ignore:
Timestamp:
01/08/04 17:24:49 (20 years ago)
Author:
jalet
Message:

edpykota now supports adding printers to printer groups.

Files:
1 modified

Legend:

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

    r1257 r1258  
    2222# 
    2323# $Log$ 
     24# Revision 1.45  2004/01/08 16:24:49  jalet 
     25# edpykota now supports adding printers to printer groups. 
     26# 
    2427# Revision 1.44  2004/01/08 14:10:33  jalet 
    2528# Copyright year changed. 
     
    361364        """Extracts printer information given its name.""" 
    362365        printer = StoragePrinter(self, printername) 
    363         result = self.doSearch("(&(objectClass=pykotaPrinter)(|(pykotaPrinterName=%s)(%s=%s)))" % (printername, self.info["printerrdn"], printername), ["pykotaPricePerPage", "pykotaPricePerJob"], base=self.info["printerbase"]) 
     366        result = self.doSearch("(&(objectClass=pykotaPrinter)(|(pykotaPrinterName=%s)(%s=%s)))" % (printername, self.info["printerrdn"], printername), ["pykotaPricePerPage", "pykotaPricePerJob", "uniqueMember"], base=self.info["printerbase"]) 
    364367        if result : 
    365368            fields = result[0][1] 
     
    368371            printer.PricePerPage = float(fields.get("pykotaPricePerPage")[0] or 0.0) 
    369372            printer.LastJob = self.getPrinterLastJob(printer) 
     373            printer.uniqueMember = fields.get("uniqueMember", []) 
    370374            printer.Exists = 1 
    371375        return printer     
     
    521525        printers = [] 
    522526        # see comment at the same place in pgstorage.py 
    523         result = self.doSearch("(&(objectClass=pykotaPrinter)(|%s))" % "".join(["(pykotaPrinterName=%s)" % pname for pname in printerpattern.split(",")]), ["pykotaPrinterName", "pykotaPricePerPage", "pykotaPricePerJob"], base=self.info["printerbase"]) 
     527        result = self.doSearch("(&(objectClass=pykotaPrinter)(|%s))" % "".join(["(pykotaPrinterName=%s)" % pname for pname in printerpattern.split(",")]), ["pykotaPrinterName", "pykotaPricePerPage", "pykotaPricePerJob", "uniqueMember"], base=self.info["printerbase"]) 
    524528        if result : 
    525529            for (printerid, fields) in result : 
     
    529533                printer.PricePerJob = float(fields.get("pykotaPricePerJob")[0] or 0.0) 
    530534                printer.PricePerPage = float(fields.get("pykotaPricePerPage")[0] or 0.0) 
     535                printer.uniqueMember = fields.get("uniqueMember", []) 
    531536                printer.LastJob = self.getPrinterLastJob(printer) 
    532537                printer.Exists = 1 
     
    814819        self.doModify(grouppquota.ident, fields) 
    815820             
     821    def writePrinterToGroup(self, pgroup, printer) : 
     822        """Puts a printer into a printer group.""" 
     823        if (printer.ident not in pgroup.uniqueMember) and (printer.ident != pgroup.ident) : 
     824            fields = { 
     825                       "uniqueMember" : pgroup.uniqueMember + [printer.ident] 
     826                     }   
     827            self.doModify(pgroup.ident, fields)          
     828         
    816829    def deleteUser(self, user) :     
    817830        """Completely deletes an user from the Quota Storage."""