Des broutilles.
Commit juste pour viter les CVS status. darcs-hash:20050624095140-061a7-3a5f5a6a81b43ad923d97e6cdc6ce05327fb45f8.gz
This commit is contained in:
parent
9c33750a20
commit
55664a2882
2 changed files with 36 additions and 23 deletions
|
@ -1,22 +1,18 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: iso-8859-15 -*-
|
# -*- coding: iso-8859-15 -*-
|
||||||
|
|
||||||
# Utilisé par /usr/lib/cgi-bin/impression/analyse.py
|
# Utilisé par /var/www/impression/analyse.py
|
||||||
# /usr/lib/cups/backend/devis et /usr/lib/cups/backend/laserjet
|
# /usr/lib/cups/backend/devis et /usr/lib/cups/backend/laserjet
|
||||||
# Écrit par Benoit
|
# Écrit par Benoit
|
||||||
# modifie par Brice DUBOST
|
# modifié par Brice DUBOST
|
||||||
|
|
||||||
import locale
|
import locale
|
||||||
locale.setlocale(locale.LC_ALL, 'fr_FR')
|
locale.setlocale(locale.LC_ALL, 'fr_FR')
|
||||||
|
|
||||||
import os, commands
|
import commands, os, string, sys
|
||||||
import string
|
import tempfile # non utilisé en ce moment
|
||||||
import re
|
|
||||||
import sys
|
|
||||||
import tempfile
|
|
||||||
|
|
||||||
sys.path.append('/usr/scripts/gestion')
|
sys.path.append('/usr/scripts/gestion')
|
||||||
|
|
||||||
from config import impression
|
from config import impression
|
||||||
|
|
||||||
|
|
||||||
|
@ -107,8 +103,6 @@ class cout:
|
||||||
else:
|
else:
|
||||||
c_format = impression.c_a4
|
c_format = impression.c_a4
|
||||||
|
|
||||||
# Conversion en PostScript si le fichier est un pdf
|
|
||||||
# pour pouvoir le decouper en petits bouts.
|
|
||||||
# Vérification du format de fichier.
|
# Vérification du format de fichier.
|
||||||
try:
|
try:
|
||||||
en_tete=open(fichier).read(4)
|
en_tete=open(fichier).read(4)
|
||||||
|
@ -123,6 +117,7 @@ class cout:
|
||||||
(status,rep) = commands.getstatusoutput("nice -n 10 gs -sDEVICE=%s -r100 -dBATCH -dNOPAUSE -dSAFER -dPARANOIDSAFER -dGraphicsAlphaBits=4 -dTextAlphaBits=4 -dMaxBitmap=50000000 -sOutputFile='%s' -q '%s'" % (device, fichier+"%d.png", fichier) )
|
(status,rep) = commands.getstatusoutput("nice -n 10 gs -sDEVICE=%s -r100 -dBATCH -dNOPAUSE -dSAFER -dPARANOIDSAFER -dGraphicsAlphaBits=4 -dTextAlphaBits=4 -dMaxBitmap=50000000 -sOutputFile='%s' -q '%s'" % (device, fichier+"%d.png", fichier) )
|
||||||
if (status != 0):
|
if (status != 0):
|
||||||
self.erreur="ERREUR : Ghostscript : Fichier Postscript invalide.\n"
|
self.erreur="ERREUR : Ghostscript : Fichier Postscript invalide.\n"
|
||||||
|
self.erreur="Le message d'erreur est le suivant :\n"
|
||||||
self.erreur+= rep
|
self.erreur+= rep
|
||||||
# On détaille l'erreur dans le mail et
|
# On détaille l'erreur dans le mail et
|
||||||
# il faut stopper l'impression.
|
# il faut stopper l'impression.
|
||||||
|
@ -204,7 +199,6 @@ class cout:
|
||||||
</p>\n<p>
|
</p>\n<p>
|
||||||
</p>\n"""
|
</p>\n"""
|
||||||
|
|
||||||
|
|
||||||
if not self.erreur:
|
if not self.erreur:
|
||||||
return self.remplis_template(template)
|
return self.remplis_template(template)
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
# Licence : GNU General Public Licence, version 2
|
# Licence : GNU General Public Licence, version 2
|
||||||
|
|
||||||
import sys, tempfile
|
import sys, tempfile
|
||||||
|
from ipp import IPPMessage
|
||||||
import couts
|
import couts
|
||||||
sys.path.append('/usr/scripts/gestion')
|
sys.path.append('/usr/scripts/gestion')
|
||||||
from ldap_crans import crans_ldap
|
from ldap_crans import crans_ldap
|
||||||
|
@ -14,29 +15,36 @@ from ldap_crans import crans_ldap
|
||||||
|
|
||||||
def utilisateur(job, user, rw):
|
def utilisateur(job, user, rw):
|
||||||
""" Renvoie l'adherent qui imprime le job
|
""" Renvoie l'adherent qui imprime le job
|
||||||
* job est le n°du job (argument n°1 des paramètres passés au backend)
|
* job est le n° du job (argument n°1 des paramètres passés au backend)
|
||||||
* user est l'utilisateur (argument n°2 des paramètres passés au backend)
|
* user est l'utilisateur (argument n°2 des paramètres passés au backend)
|
||||||
* rw vaut 1 si on veut modifier le compte LDAP de l'adhérent,
|
* rw vaut 1 si on veut modifier le compte LDAP de l'adhérent,
|
||||||
0 dans le cas contraire
|
0 dans le cas contraire
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Attention, Samba fournit root pour sys.argv[2]
|
# Utilisation de Samba qui s'authentifie en root : on parse le spool
|
||||||
# en mode Authentifie
|
if user=="root":
|
||||||
|
sys.stderr.write("DEBUG: Utilisateur Root passé en paramètre\n")
|
||||||
|
sys.stderr.write("DEBUG: On récupère le vrai utilisateur dans le spool\n")
|
||||||
|
if len(job) < 5 :
|
||||||
|
fichier_ipp = "c%05i" % int(job)
|
||||||
|
else:
|
||||||
|
fichier_ipp = "c%s" % job
|
||||||
|
try:
|
||||||
|
message = IPPMessage(open('/var/spool/cups/%s' % fichier_ipp).read())
|
||||||
|
except:
|
||||||
|
sys.stderr.write("ERROR: Erreur : Ne peut pas ouvrir le fichier /var/spool/cups/%s" % fichier_ipp)
|
||||||
|
sys.exit(0) # On conclue l'impression
|
||||||
|
user = message["job-originating-user-name"]
|
||||||
|
|
||||||
# Récupération de l'adhérent
|
# Récupération de l'adhérent
|
||||||
base = crans_ldap()
|
base = crans_ldap()
|
||||||
if rw==0 :
|
if rw == 0 :
|
||||||
res=base.search("login=%s"%user)['adherent']
|
res=base.search("login=%s"%user)['adherent']
|
||||||
else:
|
else:
|
||||||
res=base.search("login=%s"%user,'w')['adherent']
|
res=base.search("login=%s"%user,'w')['adherent']
|
||||||
|
|
||||||
# Si on ne trouve rien :
|
# Si on ne trouve rien :
|
||||||
if len(res) != 1 :
|
if len(res) != 1 :
|
||||||
if user=="root":
|
|
||||||
sys.stderr.write("ERROR: Utilisateur Root passé en paramètre\n")
|
|
||||||
sys.stderr.write("ERROR: Si passage par samba, alors passer en mode non authentifié pour l'impression")
|
|
||||||
sys.exit(1) # On stoppe l'imprimante car problème de configuration
|
|
||||||
else:
|
|
||||||
sys.stderr.write("ERROR: Erreur : adhérent %s non trouvé\n" % user)
|
sys.stderr.write("ERROR: Erreur : adhérent %s non trouvé\n" % user)
|
||||||
sys.exit(0) # On conclue l'impression sans stopper l'imprimante
|
sys.exit(0) # On conclue l'impression sans stopper l'imprimante
|
||||||
|
|
||||||
|
@ -83,9 +91,20 @@ def calcul_prix(nom_fic, media):
|
||||||
|
|
||||||
# Options par défaut (Couleur) :
|
# Options par défaut (Couleur) :
|
||||||
mode_couleur = "Couleur"
|
mode_couleur = "Couleur"
|
||||||
if media== "transparency":
|
if media == "transparency":
|
||||||
format = "transparent"
|
format = "transparent"
|
||||||
|
|
||||||
|
#Temporaire pour debugage
|
||||||
|
## fs=open(nom_fic,'r')
|
||||||
|
## fd=open('/tmp/benoit_Routard','w')
|
||||||
|
## while 1:
|
||||||
|
## txt=fs.readline()
|
||||||
|
## if txt == '':
|
||||||
|
## break
|
||||||
|
## fd.write(txt)
|
||||||
|
## fs.close()
|
||||||
|
## fd.close()
|
||||||
|
|
||||||
# Calcul du cout de l'impression :
|
# Calcul du cout de l'impression :
|
||||||
try:
|
try:
|
||||||
prix = couts.cout(nom_fic, mode_couleur)
|
prix = couts.cout(nom_fic, mode_couleur)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue