48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
#! /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)
|