scripts/radius_digicode.py
glondu a64662f734 On loggue les utilisateurs du digicode.
darcs-hash:20061011213612-68412-d623cb451865fe23dea27040fc4eb86eadad94b4.gz
2006-10-11 23:36:12 +02:00

48 lines
1.4 KiB
Python
Executable file

#! /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)