From e0d37eb62a35529afdd85f6ab2558d1c02b3435c Mon Sep 17 00:00:00 2001 From: Valentin Samir Date: Mon, 17 Jun 2013 20:54:46 +0200 Subject: [PATCH] [sip/impression] On utilise l'api impression/digicode --- sip/code_impression.py | 41 ++++++++++++++++++----------------------- 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/sip/code_impression.py b/sip/code_impression.py index a4b75228..3fa1cee5 100755 --- a/sip/code_impression.py +++ b/sip/code_impression.py @@ -1,34 +1,29 @@ #!/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.shortcuts import lc_ldap_admin from lc_ldap.attributs import imprimeur, nounou +from impression import digicode -conn=lc_ldap.shortcuts.lc_ldap_admin() -code_path='/usr/scripts/var/digicode/' +conn=lc_ldap_admin() try: aid=int(sys.argv[1][1:]) -except ValueError: - sys.stdout.write('NONE') - exit(0) -adh = conn.search(u"aid=%s" % aid)[0] -login = str(adh.get('uid',['NONE'])[0]) -try: - 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)) + + adh = conn.search(u"aid=%s" % aid)[0] + login = str(adh.get('uid',['NONE'])[0]) + codes = digicode.get_codes(login) + if codes: + sys.stdout.write(codes[0]) else: - sys.stdout.write('NONE') + droits = [str(d) for d in adh.get('droits', [])] + if imprimeur in droits or nounou in droits: + code = digicode.gen_code(login) + sys.stdout.write(str(code)) + else: + sys.stdout.write('NONE') + +except ValueError, IndexError: + sys.stdout.write('NONE') -- GitLab