Il est plus scure de rcuprer le 2me argument pass au backend pour
authentifier l'utilisateur. Pour le cas particulier de Samba, il y aura une imprimante non athentifie accessible que par lui afin que l'utilisateur de Samba soit transmis CUPS. darcs-hash:20050620215548-061a7-2f4a2f20ac519c264045f3b8cf11be2c9ef369cb.gz
This commit is contained in:
parent
40229d2389
commit
29fbff221c
1 changed files with 10 additions and 16 deletions
|
@ -7,32 +7,21 @@
|
||||||
# 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
|
||||||
|
|
||||||
|
|
||||||
def utilisateur(job, 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)
|
||||||
* 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
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Récupération du nom de l'utilisateur
|
# Attention, Samba fournit root pour sys.argv[2]
|
||||||
# On n'utilise pas sys.argv[2], car Samba fournit root
|
|
||||||
# en mode Authentifie
|
# en mode Authentifie
|
||||||
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()
|
||||||
|
@ -43,8 +32,13 @@ def utilisateur(job, rw):
|
||||||
|
|
||||||
# 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
|
sys.exit(0) # On conclue l'impression sans stopper l'imprimante
|
||||||
|
|
||||||
adherent=res[0]
|
adherent=res[0]
|
||||||
return adherent
|
return adherent
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue