diff --git a/ucs-school-umc-printermoderation/umc/python/printermoderation/__init__.py b/ucs-school-umc-printermoderation/umc/python/printermoderation/__init__.py index a9dd65e..78a1f17 100644 --- a/ucs-school-umc-printermoderation/umc/python/printermoderation/__init__.py +++ b/ucs-school-umc-printermoderation/umc/python/printermoderation/__init__.py @@ -231,7 +231,7 @@ class Instance(SchoolBaseModule): raise UMC_Error(_('Invalid printer URI')) if not os.path.exists(path): - raise UMC_Error(_('File %r could not be printed as it does not exists (anymore).') % (printjob,)) + raise UMC_Error(_('File %r could not be printed as it does not exists (anymore).') % (printjob,)) MODULE.process('Printing: %s' % path) self.pw_callback_bad_password = False @@ -243,8 +243,13 @@ class Instance(SchoolBaseModule): conn.printFile(printer, path, Printjob.filename2label(printjob), {}) except RuntimeError: raise UMC_Error(_('Failed to connect to print server %(printserver)s.') % {'printserver': spoolhost}) - except cups.IPPError as e: - raise UMC_Error(_('Failed to print on %(printer)s: %(stderr)s') % {'printer': printer, 'stderr': e}) + except cups.IPPError as (errno, description): + IPP_AUTHENTICATION_CANCELED = 4096 + description = { + cups.IPP_NOT_AUTHORIZED: _('No permission to print'), + IPP_AUTHENTICATION_CANCELED: _('Wrong password'), + }.get(errno, description) + raise UMC_Error(_('Failed to print on %(printer)s: %(stderr)s (error %(errno)d).') % {'printer': printer, 'stderr': description, 'errno': errno}) # delete file MODULE.info('Deleting print job %r' % (path,))