[digicode] On confie la gestion de digicode à l'intranet 2

* digicode.py appelle désormais la fonction create de l'intranet 2.
 * digicode_server2.py est renommé en digicode_server.py.
 * Edition de gen_code.py pour le rendre compatible avec le nouveau digicode.py.
This commit is contained in:
Lucas Serrano 2014-02-07 19:21:54 +01:00
parent dbf4496b78
commit 7122f040e6
4 changed files with 21 additions and 127 deletions

View file

@ -32,14 +32,19 @@ import os
import commands
import string
import random
import requests
sys.path.append("/usr/scripts/")
import cranslib.utils.files
import secrets_new
digicode_pass = secrets_new.get("digicode_pass")
# #############################################################
# CONSTANTES
# #############################################################
CODES_SERVERS = ["zamok", "asterisk"]
CODES_DIR = "/usr/scripts/var/digicode/"
CREATION_LINK = "https://intranet2.crans.org/digicode/create/"
CERTIFICATE = "/etc/ssl/certs/cacert.org.pem"
# #############################################################
# EXCEPTIONS
@ -92,32 +97,9 @@ def save_code(code, monString=""):
# et l'enregistre
#
def gen_code(user_name):
""" Genere un code au hasard l'enregistre avec user_name dans le fichier"""
# Generation du code et ecriture du code
rand=random.Random()
# Graine automatique avec le temps
rand.seed()
for i in range(1000):
# On genere un code
code = rand.randint(100000, 999999)
# Si le code est libre, on sort de la boucle
if not os.path.exists( os.path.join( CODES_DIR, str( code ) ) ):
break
else:
# Pas de code disponible
print ("ERROR: Il n'y a pas de code disponible" )
sys.stderr.write ("ERROR: Il n'y a pas de code disponible" )
try:
sys.stderr.write("DEBUG: Un rapport de bug a ete automatiquement envoye.\n")
except:
sys.stderr.write("ERROR: Impossible d'envoyer le rapport de bug.\n")
sys.stderr.write("ERROR: Plus de codes disponibles.\n")
sys.stderr.write("ERROR: Penser a ouvrir a l'adherent debite...\n")
return
save_code(code, user_name)
return code
"""On contacte l'intranet 2 pour générer le code et on récupère le résultat"""
response = requests.post(CREATION_LINK, data={'password':digicode_pass, 'user':user_name}, verify=CERTIFICATE, timeout=2)
return response.content
# ###############################