Changeset 1192 for pykota/trunk/pykota/tool.py
- Timestamp:
- 11/19/03 00:43:12 (20 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
pykota/trunk/pykota/tool.py
r1171 r1192 22 22 # 23 23 # $Log$ 24 # Revision 1.55 2003/11/18 23:43:12 jalet 25 # Mailto can be any external command now, as usual. 26 # 24 27 # Revision 1.54 2003/10/24 21:52:46 jalet 25 28 # Now can force language when coming from CGI script. … … 506 509 return action 507 510 511 def externalMailTo(self, cmd, action, user, printername, message) : 512 """Warns the user with an external command.""" 513 username = user.Name 514 email = user.Email or user.Name 515 if "@" not in email : 516 email = "%s@%s" % (email, self.smtpserver) 517 os.system(cmd % locals()) 518 508 519 def warnGroupPQuota(self, grouppquota) : 509 520 """Checks a group quota and send messages if quota is exceeded on current printer.""" … … 512 523 admin = self.config.getAdmin(printer.Name) 513 524 adminmail = self.config.getAdminMail(printer.Name) 514 mailto= self.config.getMailTo(printer.Name)525 (mailto, arguments) = self.config.getMailTo(printer.Name) 515 526 action = self.checkGroupPQuota(grouppquota) 516 527 if action.startswith("POLICY_") : … … 521 532 if mailto in [ "BOTH", "ADMIN" ] : 522 533 self.sendMessageToAdmin(adminmail, _("Print Quota"), adminmessage) 523 if mailto in [ "BOTH", "USER" ] :534 if mailto in [ "BOTH", "USER", "EXTERNAL" ] : 524 535 for user in self.storage.getGroupMembers(group) : 525 self.sendMessageToUser(admin, adminmail, user, _("Print Quota Exceeded"), self.config.getHardWarn(printer.Name)) 536 if mailto != "EXTERNAL" : 537 self.sendMessageToUser(admin, adminmail, user, _("Print Quota Exceeded"), self.config.getHardWarn(printer.Name)) 538 else : 539 self.externalMailTo(arguments, action, user, printer.Name, message) 526 540 elif action == "WARN" : 527 541 adminmessage = _("Print Quota low for group %s on printer %s") % (group.Name, printer.Name) … … 533 547 else : 534 548 message = self.config.getSoftWarn(printer.Name) 535 if mailto in [ "BOTH", "USER" ] :549 if mailto in [ "BOTH", "USER", "EXTERNAL" ] : 536 550 for user in self.storage.getGroupMembers(group) : 537 self.sendMessageToUser(admin, adminmail, user, _("Print Quota Exceeded"), message) 551 if mailto != "EXTERNAL" : 552 self.sendMessageToUser(admin, adminmail, user, _("Print Quota Exceeded"), message) 553 else : 554 self.externalMailTo(arguments, action, user, printer.Name, message) 538 555 return action 539 556 … … 544 561 admin = self.config.getAdmin(printer.Name) 545 562 adminmail = self.config.getAdminMail(printer.Name) 546 mailto= self.config.getMailTo(printer.Name)563 (mailto, arguments) = self.config.getMailTo(printer.Name) 547 564 action = self.checkUserPQuota(userpquota) 548 565 if action.startswith("POLICY_") : … … 551 568 adminmessage = _("Print Quota exceeded for user %s on printer %s") % (user.Name, printer.Name) 552 569 self.logger.log_message(adminmessage) 553 if mailto in [ "BOTH", "USER" ] : 554 self.sendMessageToUser(admin, adminmail, user, _("Print Quota Exceeded"), self.config.getHardWarn(printer.Name)) 570 if mailto in [ "BOTH", "USER", "EXTERNAL" ] : 571 message = self.config.getHardWarn(printer.Name) 572 if mailto != "EXTERNAL" : 573 self.sendMessageToUser(admin, adminmail, user, _("Print Quota Exceeded"), message) 574 else : 575 self.externalMailTo(arguments, action, user, printer.Name, message) 555 576 if mailto in [ "BOTH", "ADMIN" ] : 556 577 self.sendMessageToAdmin(adminmail, _("Print Quota"), adminmessage) … … 558 579 adminmessage = _("Print Quota low for user %s on printer %s") % (user.Name, printer.Name) 559 580 self.logger.log_message(adminmessage) 560 if mailto in [ "BOTH", "USER" ] :581 if mailto in [ "BOTH", "USER", "EXTERNAL" ] : 561 582 if user.LimitBy and (user.LimitBy.lower() == "balance") : 562 583 message = self.config.getPoorWarn() 563 584 else : 564 585 message = self.config.getSoftWarn(printer.Name) 565 self.sendMessageToUser(admin, adminmail, user, _("Print Quota Low"), message) 586 if mailto != "EXTERNAL" : 587 self.sendMessageToUser(admin, adminmail, user, _("Print Quota Low"), message) 588 else : 589 self.externalMailTo(arguments, action, user, printer.Name, message) 566 590 if mailto in [ "BOTH", "ADMIN" ] : 567 591 self.sendMessageToAdmin(adminmail, _("Print Quota"), adminmessage)