601 | | printer = userpquota.Printer |
602 | | admin = self.config.getAdmin(printer.Name) |
603 | | adminmail = self.config.getAdminMail(printer.Name) |
604 | | (mailto, arguments) = self.config.getMailTo(printer.Name) |
605 | | action = self.checkUserPQuota(userpquota) |
606 | | if action.startswith("POLICY_") : |
607 | | action = action[7:] |
608 | | if action == "DENY" : |
609 | | adminmessage = _("Print Quota exceeded for user %s on printer %s") % (user.Name, printer.Name) |
610 | | self.logger.log_message(adminmessage) |
611 | | if mailto in [ "BOTH", "USER", "EXTERNAL" ] : |
612 | | message = self.config.getHardWarn(printer.Name) |
613 | | if mailto != "EXTERNAL" : |
614 | | self.sendMessageToUser(admin, adminmail, user, _("Print Quota Exceeded"), message) |
615 | | else : |
616 | | self.externalMailTo(arguments, action, user, printer, message) |
617 | | if mailto in [ "BOTH", "ADMIN" ] : |
618 | | self.sendMessageToAdmin(adminmail, _("Print Quota"), adminmessage) |
619 | | elif action == "WARN" : |
620 | | adminmessage = _("Print Quota low for user %s on printer %s") % (user.Name, printer.Name) |
621 | | self.logger.log_message(adminmessage) |
622 | | if mailto in [ "BOTH", "USER", "EXTERNAL" ] : |
623 | | if user.LimitBy and (user.LimitBy.lower() == "balance") : |
624 | | message = self.config.getPoorWarn() |
625 | | else : |
626 | | message = self.config.getSoftWarn(printer.Name) |
627 | | if mailto != "EXTERNAL" : |
628 | | self.sendMessageToUser(admin, adminmail, user, _("Print Quota Low"), message) |
629 | | else : |
630 | | self.externalMailTo(arguments, action, user, printer, message) |
631 | | if mailto in [ "BOTH", "ADMIN" ] : |
632 | | self.sendMessageToAdmin(adminmail, _("Print Quota"), adminmessage) |
633 | | return action |
| 608 | actions = [] |
| 609 | for upq in [userpquota] + userpquota.ParentPrintersUserPQuota : |
| 610 | printer = upq.Printer |
| 611 | admin = self.config.getAdmin(printer.Name) |
| 612 | adminmail = self.config.getAdminMail(printer.Name) |
| 613 | (mailto, arguments) = self.config.getMailTo(printer.Name) |
| 614 | self.logdebug("Checking quota for user %s on printer %s" % (upq.User.Name, printer.Name)) |
| 615 | action = self.checkUserPQuota(upq) |
| 616 | self.logdebug("Result is %s" % action) |
| 617 | if action.startswith("POLICY_") : |
| 618 | action = action[7:] |
| 619 | if action == "DENY" : |
| 620 | adminmessage = _("Print Quota exceeded for user %s on printer %s") % (user.Name, printer.Name) |
| 621 | self.logger.log_message(adminmessage) |
| 622 | if mailto in [ "BOTH", "USER", "EXTERNAL" ] : |
| 623 | message = self.config.getHardWarn(printer.Name) |
| 624 | if mailto != "EXTERNAL" : |
| 625 | self.sendMessageToUser(admin, adminmail, user, _("Print Quota Exceeded"), message) |
| 626 | else : |
| 627 | self.externalMailTo(arguments, action, user, printer, message) |
| 628 | if mailto in [ "BOTH", "ADMIN" ] : |
| 629 | self.sendMessageToAdmin(adminmail, _("Print Quota"), adminmessage) |
| 630 | elif action == "WARN" : |
| 631 | adminmessage = _("Print Quota low for user %s on printer %s") % (user.Name, printer.Name) |
| 632 | self.logger.log_message(adminmessage) |
| 633 | if mailto in [ "BOTH", "USER", "EXTERNAL" ] : |
| 634 | if user.LimitBy and (user.LimitBy.lower() == "balance") : |
| 635 | message = self.config.getPoorWarn() |
| 636 | else : |
| 637 | message = self.config.getSoftWarn(printer.Name) |
| 638 | if mailto != "EXTERNAL" : |
| 639 | self.sendMessageToUser(admin, adminmail, user, _("Print Quota Low"), message) |
| 640 | else : |
| 641 | self.externalMailTo(arguments, action, user, printer, message) |
| 642 | if mailto in [ "BOTH", "ADMIN" ] : |
| 643 | self.sendMessageToAdmin(adminmail, _("Print Quota"), adminmessage) |
| 644 | actions.append(action) |
| 645 | if "DENY" in actions : |
| 646 | self.logdebug("Final result is %s" % action) |
| 647 | return "DENY" |
| 648 | elif "WARN" in actions : |
| 649 | self.logdebug("Final result is %s" % action) |
| 650 | return "WARN" |
| 651 | else : |
| 652 | self.logdebug("Final result is %s" % action) |
| 653 | return "ALLOW" |