From 5818abbd8f59dbeeb7f8962aba76c6b610e6c00d Mon Sep 17 00:00:00 2001 From: Valentin Samir Date: Mon, 17 Jun 2013 01:40:46 +0200 Subject: [PATCH] =?UTF-8?q?[sip/impression]=20Si=20l'appelant=20est=20noun?= =?UTF-8?q?ou=20ou=20imprimeur,=20on=20lui=20g=C3=A9n=C3=A8re=20un=20code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sip/code_impression.py | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/sip/code_impression.py b/sip/code_impression.py index 72ea3a21..a4b75228 100755 --- a/sip/code_impression.py +++ b/sip/code_impression.py @@ -1,19 +1,34 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- +import os import sys +import random from sh import grep,ErrorReturnCode_1 sys.path.append('/usr/scripts/') import lc_ldap.shortcuts +from lc_ldap.attributs import imprimeur, nounou conn=lc_ldap.shortcuts.lc_ldap_admin() +code_path='/usr/scripts/var/digicode/' try: aid=int(sys.argv[1][1:]) except ValueError: sys.stdout.write('NONE') exit(0) -login=conn.search(u"aid=%s" % aid)[0]['uid'][0] +adh = conn.search(u"aid=%s" % aid)[0] +login = str(adh.get('uid',['NONE'])[0]) try: - sys.stdout.write(grep('-r',login,'/usr/scripts/var/digicode/').split('/')[-1].split(':')[0]) -except ErrorReturnCode_1: sys.stdout.write('NONE') + sys.stdout.write(grep('-rl',login, code_path).split('/')[-1]) +except ErrorReturnCode_1: + droits = [str(d) for d in adh.get('droits', [])] + if imprimeur in droits or nounou in droits: + code = str(random.randint(100000, 999999)) + while os.path.isfile(code_path + code): + code = str(random.randint(100000, 999999)) + with open(code_path + code, 'w') as f: + f.write(login + '\n') + sys.stdout.write(str(code)) + else: + sys.stdout.write('NONE')