59 lines
2.8 KiB
Python
59 lines
2.8 KiB
Python
# #############################################################
|
|
# ..
|
|
# .... ............ ........
|
|
# . ....... . .... ..
|
|
# . ... .. .. .. .. ..... . ..
|
|
# .. .. ....@@@. .. . ........ .
|
|
# .. . .. ..@.@@..@@. .@@@@@@@ @@@@@@. ....
|
|
# .@@@@. .@@@@. .@@@@..@@.@@..@@@..@@@..@@@@.... ....
|
|
# @@@@... .@@@.. @@ @@ .@..@@..@@...@@@. .@@@@@. ..
|
|
# .@@@.. . @@@. @@.@@..@@.@@..@@@ @@ .@@@@@@.. .....
|
|
# ...@@@.... @@@ .@@.......... ........ ..... ..
|
|
# . ..@@@@.. . .@@@@. .. ....... . .............
|
|
# . .. .... .. .. . ... ....
|
|
# . . .... ............. .. ...
|
|
# .. .. ... ........ ... ...
|
|
# ................................
|
|
#
|
|
# #############################################################
|
|
# digicode.py
|
|
#
|
|
# Fonctions pour controler le digicode du 4@J
|
|
#
|
|
# Copyright (c) 2006 by www.crans.org
|
|
# #############################################################
|
|
import sys, time, tempfile, os, commands, string, random
|
|
def __init__():
|
|
pass
|
|
|
|
def gen_code(user_name):
|
|
""" Genere le code et l'enregistre dans /var/impression/codes pour radius """
|
|
# 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("/var/impression/codes/%d" % 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
|
|
|
|
# On enregistre le fichier avec le code pour numero
|
|
codefichier = open("/var/impression/codes/%d" % code, 'w')
|
|
codefichier.write("Utilisateur %s\n" % user_name)
|
|
codefichier.close()
|
|
return code
|