#! /usr/bin/env python # -*- coding: iso-8859-15 -*- """ Script de test du code de la porte du local de l'imprimante """ import os, sys from syslog import openlog, syslog def identification(password): # test un code entré sur la porte : # doit retourner 0 si le code n'est pas bon # 1 pour ouvrir la porte #codes en statique pour les tests #Dans l'avenir tout sera sous forme de fichiers #si le fichier existe le code est bon (evite les problemes par rapport au fait de # stocker les codes dans un fichier try: user = file("/var/impression/codes/%s" % password).readline().strip() except: user = "" if password in os.listdir('/var/impression/codes'): if password in os.listdir('/var/impression/codes'): os.remove("/var/impression/codes/%s" %password) return user, True else: return "", False if __name__ == '__main__' : openlog("digicode") # on récupère le code dans les variables d'environement try: code = os.getenv('USER_PASSWORD', '').replace('"', '') except: code = '' # test de l'authentification user, ok = identification(code) if ok: # c'est bon syslog("code %s [%s] correct" % (code, user)) sys.exit(0) else: # c'est pas bon syslog("code %s incorrect" % code) sys.exit(1)