scripts/radius_digicode.py
Antoine Durand-Gasselin 4a68475e34 [wiki-lenny] suppression de static/
darcs-hash:20090314092631-bd074-b01256aeaf71e935851b3ecdbd623eaae8c9e8a1.gz
2009-03-14 10:26:31 +01:00

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)