# ############################################################# # .. # .... ............ ........ # . ....... . .... .. # . ... .. .. .. .. ..... . .. # .. .. ....@@@. .. . ........ . # .. . .. ..@.@@..@@. .@@@@@@@ @@@@@@. .... # .@@@@. .@@@@. .@@@@..@@.@@..@@@..@@@..@@@@.... .... # @@@@... .@@@.. @@ @@ .@..@@..@@...@@@. .@@@@@. .. # .@@@.. . @@@. @@.@@..@@.@@..@@@ @@ .@@@@@@.. ..... # ...@@@.... @@@ .@@.......... ........ ..... .. # . ..@@@@.. . .@@@@. .. ....... . ............. # . .. .... .. .. . ... .... # . . .... ............. .. ... # .. .. ... ........ ... ... # ................................ # # ############################################################# # 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