From 9b12d8f960ac0281e8aa91f531744f0a738a7c77 Mon Sep 17 00:00:00 2001 From: rozel Date: Thu, 16 Jun 2005 11:11:42 +0200 Subject: [PATCH] Rcupration de l'utilisateur rel de cups en parsant son spool. On ne peut pas utiliser le 2me argument pass au backend car en mode authentifi Samba fournit root plutot que de faire suivre l'utilisateur connect Samba. darcs-hash:20050616091142-061a7-4047755bb27376e46c05548d3ac06e2aac9c697b.gz --- impression/backend/devis | 29 ++++++++++++++--------------- impression/backend/laserjet | 16 +++++++++++++--- 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/impression/backend/devis b/impression/backend/devis index fc079a51..17b27d27 100755 --- a/impression/backend/devis +++ b/impression/backend/devis @@ -7,7 +7,7 @@ import sys sys.path.append('/usr/scripts/impression') -#from ipp import IPPMessage +from ipp import IPPMessage import couts sys.path.append('/usr/scripts/gestion') from config import impression @@ -63,20 +63,19 @@ while ligne: ligne = entree.readline() fic.flush() -# Récupérer l'IP -#if len(sys.argv[1]) < 5 : -# fichier_ipp = "c%05i" % int(sys.argv[1]) -#else: -# fichier_ipp = "c%s" % sys.argv[1] -# -#try: -# message = IPPMessage(open('/var/spool/cups/%s' % fichier_ipp).read()) -#except: -# sys.stderr.write("Ne peut pas ouvrir/parser le fichier /var/spool/cups/%s" % fichier_ipp) - -#recuperation du nom de l'utilisateur -user=sys.argv[2] -#recuperation de l'adherent +# Recuperation du nom de l'utilisateur +#user=sys.argv[2] #On ne fait pas comme ca, car samba passe l'utilisateur root +if len(sys.argv[1]) < 5 : + fichier_ipp = "c%05i" % int(sys.argv[1]) +else: + fichier_ipp = "c%s" % sys.argv[1] +try: + message = IPPMessage(open('/var/spool/cups/%s' % fichier_ipp).read()) +except: + sys.stderr.write("ERROR: Erreur : Ne peut pas ouvrir/parser le fichier /var/spool/cups/%s" % fichier_ipp) +user=message["job-originating-user-name"] + +# Recuperation de l'adherent base = crans_ldap() res=base.search("login=%s"%user)['adherent'] #si on ne trouve rien diff --git a/impression/backend/laserjet b/impression/backend/laserjet index f2f43105..78d3fbcf 100755 --- a/impression/backend/laserjet +++ b/impression/backend/laserjet @@ -103,9 +103,19 @@ else : # Lecture sur stdin entree = sys.stdin -#recuperation du nom de l'utilisateur -user=sys.argv[2] -#recuperation de l'adherent en écriture +# Recuperation du nom de l'utilisateur +#user=sys.argv[2] #On ne fait pas comme ca, car samba passe l'utilisateur root +if len(sys.argv[1]) < 5 : + fichier_ipp = "c%05i" % int(sys.argv[1]) +else: + fichier_ipp = "c%s" % sys.argv[1] +try: + message = IPPMessage(open('/var/spool/cups/%s' % fichier_ipp).read()) +except: + sys.stderr.write("ERROR: Erreur : Ne peut pas ouvrir/parser le fichier /var/spool/cups/%s" % fichier_ipp) +user=message["job-originating-user-name"] + +# Recuperation de l'adherent en écriture res=base.search("login=%s"%user,'w')['adherent'] #si on ne trouve rien if len(res) != 1 :