Index: pykota/trunk/cgi-bin/pykotme.cgi
===================================================================
--- pykota/trunk/cgi-bin/pykotme.cgi (revision 2381)
+++ pykota/trunk/cgi-bin/pykotme.cgi (revision 2524)
@@ -167,9 +167,20 @@
                     user = self.storage.getUser(remuser)
                     if user.Exists :
-                        for printer in printers :
-                            upquota = self.storage.getUserPQuota(user, printer)
-                            if upquota.Exists :
-                                cost = upquota.computeJobPrice(jobsize)
-                                self.body += "<p>%s</p>" % (_("Cost on printer %s : %.2f") % (printer.Name, cost))
+                        if user.LimitBy == "noprint" :
+                            self.body += "<p>%s</p>" % _("Your account settings forbid you to print at this time.")
+                        else :    
+                            for printer in printers :
+                                upquota = self.storage.getUserPQuota(user, printer)
+                                if upquota.Exists :
+                                    if printer.MaxJobSize and (jobsize > printer.MaxJobSize) :
+                                        msg = _("You are not allowed to print so many pages on printer %s at this time.") % printer.Name
+                                    else :    
+                                        cost = upquota.computeJobPrice(jobsize)
+                                        msg = _("Cost on printer %s : %.2f") % (printer.Name, cost)
+                                        if printer.PassThrough :
+                                            msg = "%s (%s)" % (msg, _("won't be charged, printer is in passthrough mode"))
+                                        elif user.LimitBy == "nochange" :    
+                                            msg = "%s (%s)" % (msg, _("won't be charged, your account is immutable"))
+                                    self.body += "<p>%s</p>" % msg
                 except :
                     self.body += '<p><font color="red">%s</font></p>' % self.crashed("CGI Error").replace("\n", "<br />")
Index: pykota/trunk/bin/pykotme
===================================================================
--- pykota/trunk/bin/pykotme (revision 2512)
+++ pykota/trunk/bin/pykotme (revision 2524)
@@ -105,9 +105,20 @@
         print _("Job size : %i pages") % totalsize    
         if user.Exists :
-            for printer in printers :
-                userpquota = self.storage.getUserPQuota(user, printer)
-                if userpquota.Exists :
-                    cost = userpquota.computeJobPrice(totalsize)
-                    print _("Cost on printer %s : %.2f") % (printer.Name, cost)
+            if user.LimitBy == "noprint" :
+                print _("Your account settings forbid you to print at this time.")
+            else :    
+                for printer in printers :
+                    userpquota = self.storage.getUserPQuota(user, printer)
+                    if userpquota.Exists :
+                        if printer.MaxJobSize and (totalsize > printer.MaxJobSize) :
+                            print _("You are not allowed to print so many pages on printer %s at this time.") % printer.Name
+                        else :    
+                            cost = userpquota.computeJobPrice(totalsize)
+                            msg = _("Cost on printer %s : %.2f") % (printer.Name, cost)
+                            if printer.PassThrough :
+                                msg = "%s (%s)" % (msg, _("won't be charged, printer is in passthrough mode"))
+                            elif user.LimitBy == "nochange" :    
+                                msg = "%s (%s)" % (msg, _("won't be charged, your account is immutable"))
+                            print msg    
             
 if __name__ == "__main__" : 
Index: pykota/trunk/po/sv_SE/pykota.po
===================================================================
--- pykota/trunk/po/sv_SE/pykota.po (revision 2520)
+++ pykota/trunk/po/sv_SE/pykota.po (revision 2524)
@@ -2039,4 +2039,10 @@
 msgstr ""
 
+msgid "won't be charged, printer is in passthrough mode"
+msgstr ""
+
+msgid "won't be charged, your account is immutable"
+msgstr ""
+
 #~ msgid "File number %s unregistered twice from polling object, ignored."
 #~ msgstr ""
Index: pykota/trunk/po/pt/pykota.po
===================================================================
--- pykota/trunk/po/pt/pykota.po (revision 2515)
+++ pykota/trunk/po/pt/pykota.po (revision 2524)
@@ -2028,4 +2028,10 @@
 msgstr ""
 
+msgid "won't be charged, printer is in passthrough mode"
+msgstr ""
+
+msgid "won't be charged, your account is immutable"
+msgstr ""
+
 #~ msgid "File number %s unregistered twice from polling object, ignored."
 #~ msgstr ""
Index: pykota/trunk/po/tr/pykota.po
===================================================================
--- pykota/trunk/po/tr/pykota.po (revision 2515)
+++ pykota/trunk/po/tr/pykota.po (revision 2524)
@@ -2039,4 +2039,10 @@
 msgstr ""
 
+msgid "won't be charged, printer is in passthrough mode"
+msgstr ""
+
+msgid "won't be charged, your account is immutable"
+msgstr ""
+
 #~ msgid "File number %s unregistered twice from polling object, ignored."
 #~ msgstr "%s dosya numarası yoklama nesnesinde kayıtlı değil, yok sayılıyor."
Index: pykota/trunk/po/pt_BR/pykota.po
===================================================================
--- pykota/trunk/po/pt_BR/pykota.po (revision 2515)
+++ pykota/trunk/po/pt_BR/pykota.po (revision 2524)
@@ -2020,4 +2020,10 @@
 msgstr ""
 
+msgid "won't be charged, printer is in passthrough mode"
+msgstr ""
+
+msgid "won't be charged, your account is immutable"
+msgstr ""
+
 #~ msgid "File number %s unregistered twice from polling object, ignored."
 #~ msgstr ""
Index: pykota/trunk/po/es/pykota.po
===================================================================
--- pykota/trunk/po/es/pykota.po (revision 2515)
+++ pykota/trunk/po/es/pykota.po (revision 2524)
@@ -2066,4 +2066,10 @@
 
 msgid "DENY"
+msgstr ""
+
+msgid "won't be charged, printer is in passthrough mode"
+msgstr ""
+
+msgid "won't be charged, your account is immutable"
 msgstr ""
 
Index: pykota/trunk/po/fr/pykota.po
===================================================================
--- pykota/trunk/po/fr/pykota.po (revision 2515)
+++ pykota/trunk/po/fr/pykota.po (revision 2524)
@@ -2957,2 +2957,7 @@
 msgid "DENY"
 msgstr "Rejet�
+msgid "won't be charged, printer is in passthrough mode"
+msgstr "non d�mpt�imprimante en mode 'passthrough'"
+
+msgid "won't be charged, your account is immutable"
+msgstr "non d�mpt�votre compte est immuable"
Index: pykota/trunk/po/de/pykota.po
===================================================================
--- pykota/trunk/po/de/pykota.po (revision 2515)
+++ pykota/trunk/po/de/pykota.po (revision 2524)
@@ -2031,4 +2031,10 @@
 
 msgid "DENY"
+msgstr ""
+
+msgid "won't be charged, printer is in passthrough mode"
+msgstr ""
+
+msgid "won't be charged, your account is immutable"
 msgstr ""
 
Index: pykota/trunk/po/el_GR/pykota.po
===================================================================
--- pykota/trunk/po/el_GR/pykota.po (revision 2515)
+++ pykota/trunk/po/el_GR/pykota.po (revision 2524)
@@ -2022,4 +2022,10 @@
 msgstr ""
 
+msgid "won't be charged, printer is in passthrough mode"
+msgstr ""
+
+msgid "won't be charged, your account is immutable"
+msgstr ""
+
 #~ msgid "File number %s unregistered twice from polling object, ignored."
 #~ msgstr ""
Index: pykota/trunk/po/pykota.pot
===================================================================
--- pykota/trunk/po/pykota.pot (revision 2515)
+++ pykota/trunk/po/pykota.pot (revision 2524)
@@ -1976,2 +1976,7 @@
 msgstr ""
 
+msgid "won't be charged, printer is in passthrough mode"
+msgstr ""
+
+msgid "won't be charged, your account is immutable"
+msgstr ""
Index: pykota/trunk/po/nb_NO/pykota.po
===================================================================
--- pykota/trunk/po/nb_NO/pykota.po (revision 2515)
+++ pykota/trunk/po/nb_NO/pykota.po (revision 2524)
@@ -2026,4 +2026,10 @@
 msgstr ""
 
+msgid "won't be charged, printer is in passthrough mode"
+msgstr ""
+
+msgid "won't be charged, your account is immutable"
+msgstr ""
+
 #~ msgid "Job is a duplicate. Printing is denied."
 #~ msgstr "Utskriften er en duplikat. Utskriften blir ikke skrevet."
Index: pykota/trunk/po/th/pykota.po
===================================================================
--- pykota/trunk/po/th/pykota.po (revision 2515)
+++ pykota/trunk/po/th/pykota.po (revision 2524)
@@ -2000,4 +2000,10 @@
 msgstr ""
 
+msgid "won't be charged, printer is in passthrough mode"
+msgstr ""
+
+msgid "won't be charged, your account is immutable"
+msgstr ""
+
 #~ msgid "File number %s unregistered twice from polling object, ignored."
 #~ msgstr "������� %s ������ŧ����� 2 ��駨ҡ������� ,���
Index: pykota/trunk/po/zh_TW/pykota.po
===================================================================
--- pykota/trunk/po/zh_TW/pykota.po (revision 2515)
+++ pykota/trunk/po/zh_TW/pykota.po (revision 2524)
@@ -1994,4 +1994,10 @@
 msgstr ""
 
+msgid "won't be charged, printer is in passthrough mode"
+msgstr ""
+
+msgid "won't be charged, your account is immutable"
+msgstr ""
+
 #~ msgid "File number %s unregistered twice from polling object, ignored."
 #~ msgstr "檔案編號 %s 在polling object上已兩次未能成功註冊，因此被忽略"
Index: pykota/trunk/po/it/pykota.po
===================================================================
--- pykota/trunk/po/it/pykota.po (revision 2515)
+++ pykota/trunk/po/it/pykota.po (revision 2524)
@@ -2033,4 +2033,10 @@
 msgstr ""
 
+msgid "won't be charged, printer is in passthrough mode"
+msgstr ""
+
+msgid "won't be charged, your account is immutable"
+msgstr ""
+
 #~ msgid "File number %s unregistered twice from polling object, ignored."
 #~ msgstr "Numero file %s rimosso due volte dall'oggetto polling, ignorato."
