#! /usr/bin/env python # -*- coding: iso-8859-15 -*- """ Script de test du code de la porte du local de l'imprimante """ """ !!! Ce script n'est pas en production !!! Le serveur du digicode fonctionne en standalone via le fichier /usr/scripts/impression/digicode_server.py """ 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)