Changeset 750

Show
Ignore:
Timestamp:
02/07/03 23:53:57 (21 years ago)
Author:
jalet
Message:

Checks if printer name is valid before adding it

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • pykota/trunk/bin/edpykota

    r749 r750  
    1717# 
    1818# $Log$ 
     19# Revision 1.8  2003/02/07 22:53:57  jalet 
     20# Checks if printer name is valid before adding it 
     21# 
    1922# Revision 1.7  2003/02/07 22:17:58  jalet 
    2023# Incomplete test 
     
    122125class EdPyKota(PyKotaTool) :         
    123126    """A class for edpykota.""" 
     127    def isValidPrinterName(self, printername) : 
     128        """Checks if a printername is valid.""" 
     129        import string 
     130        if printername[0] in string.ascii_letters : 
     131            validchars = string.ascii_letters + string.digits + "-_" 
     132            for c in printername[1:] : 
     133                if c not in validchars : 
     134                    return 0 
     135            return 1         
     136        return 0 
     137         
    124138    def main(self, names, options) : 
    125139        """Edit user or group quotas.""" 
    126140        printernames = self.storage.getMatchingPrinters(options["printer"]) 
    127141        if not printernames : 
    128             if options["add"] and options["printer"] and options["printer"].isalpha() : 
    129                 self.storage.addPrinter(options["printer"]) 
     142            pname = options["printer"] 
     143            if options["add"] and pname : 
     144                if self.isValidPrinterName(pname) : 
     145                    self.storage.addPrinter(pname) 
     146                else :     
     147                    raise PyKotaToolError, "Invalid printer name %s" % pname 
    130148            else : 
    131                 raise PyKotaToolError, "There's no printer matching %s" % options["printer"] 
     149                raise PyKotaToolError, "There's no printer matching %s" % pname 
    132150        softlimit = hardlimit = None     
    133151        if options["softlimit"] :