Show
Ignore:
Timestamp:
02/06/03 00:26:22 (21 years ago)
Author:
jalet
Message:

Incorrect handling of grace delay

Files:
1 modified

Legend:

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

    r706 r708  
    1515# 
    1616# $Log$ 
     17# Revision 1.5  2003/02/05 23:26:22  jalet 
     18# Incorrect handling of grace delay 
     19# 
    1720# Revision 1.4  2003/02/05 23:02:10  jalet 
    1821# Typo 
     
    3033# 
    3134# 
    32  
    33 from mx import DateTime 
    3435 
    3536class SQLStorage :     
     
    8687        self.updateUserPQuota(username, printername, -pagebought) 
    8788         
    88     def checkUserPQuota(self, username, printername) : 
    89         # TODO : this doesn't work as expected wrt dates 
    90         # TODO : GRACEDELAY should come from the configuration file 
    91         # TODO : move this into the PyKotaTool class 
    92         now = DateTime.now() 
    93         quota = self.getUserPQuota(username, printername) 
    94         pagecounter = quota["pagecounter"] 
    95         softlimit = quota["softlimit"] 
    96         hardlimit = quota["hardlimit"] 
    97         datelimit = quota["datelimit"] 
    98         if datelimit : 
    99             datelimit = DateTime.DateTime(datelimit)    # TODO : check this ! 
    100         if softlimit is not None : 
    101             if pagecounter < softlimit : 
    102                 action = "ALLOW" 
    103             elif hardlimit is not None : 
    104                  if softlimit <= pagecounter < hardlimit :     
    105                      if datelimit is None : 
    106                          self.doQuery("UPDATE userpquota SET datelimit=%s::DATETIME WHERE userid=%s AND printerid=%s;" % (self.doQuote("%04i-%02i-%02i %02i:%02i" % (now.year, now.month, now.day, now.hour, now.minute)), self.doQuote(self.getUserId(username)), self.doQuote(self.getPrinterId(printername)))) 
    107                          datelimit = now 
    108                      if (now - datelimit) <= GRACEDELAY : 
    109                          action = "WARN" 
    110                      else :     
    111                          action = "DENY" 
    112                  else :          
    113                      action = "DENY" 
    114             else :         
    115                 action = "DENY" 
    116         else :         
    117             action = "ALLOW" 
    118         return (action, (hardlimit - pagecounter), datelimit) 
    119