Detabification massive.

darcs-hash:20051018083823-d1718-09c2df38cfb707d3c3679188b9b9a812009f4f7c.gz
This commit is contained in:
bernat 2005-10-18 10:38:23 +02:00
parent 3c54fb2904
commit 37b21339a6
40 changed files with 1473 additions and 1473 deletions

View file

@ -12,13 +12,13 @@ sys.stdout.write('Nom d\'utilisateur (au format prenom.nom) : ')
while True :
user = sys.stdin.readline().strip()
if user :
break
break
while True :
pass1 = getpass('Mot de passe : ')
pass2 = getpass('Retappez le mot de passe : ')
if pass1 == pass2 :
break
break
print 'Les deux mot de passe ne correpondent pas !'
f = open('/usr/scripts/wifiweb/utilisateurs.py','a+')

View file

@ -34,7 +34,7 @@ action = form.getvalue('action','auth')
try :
url = os.environ['HTTP_REFERER']
if '?' in url :
url = url.split('?')[0]
url = url.split('?')[0]
except :
url = ''
@ -63,13 +63,13 @@ def message_nok (texte) :
def bouton (url='', sid='', action='', caption='') :
txt = ''
if url :
txt += '<form action="%s" method="POST">\n' % url
txt += '<form action="%s" method="POST">\n' % url
else :
txt += '<form method="POST">\n'
txt += '<form method="POST">\n'
if sid :
txt += '<input type="hidden" name="sid" value="%s">\n' % sid
txt += '<input type="hidden" name="sid" value="%s">\n' % sid
if action :
txt += '<input type="hidden" name="action" value="%s">' % action
txt += '<input type="hidden" name="action" value="%s">' % action
txt += '<input type="submit" value="%s">\n</form>' % caption
return txt
@ -84,7 +84,7 @@ if action == 'valid-auth' :
sess.data['user'] = form.getvalue('user','')
sess.data['password'] = sha.new(form.getvalue('password','')).hexdigest()
if users.has_key( sess.data['user'] + ':' + sess.data['password'] ) :
log(sess.data['user'] + ' s\'est connecté' )
log(sess.data['user'] + ' s\'est connecté' )
action = 'index'
if not sess.data.has_key('user') or not sess.data.has_key('password') :
@ -93,25 +93,25 @@ if not sess.data.has_key('user') or not sess.data.has_key('password') :
if action != 'auth' :
if users.has_key( sess.data['user'] + ':' + sess.data['password'] ) :
# droits de l'utilisateur
#########################
# droits de l'utilisateur
#########################
# construction de la liste des bornes modifiables
bornes_modifiables = []
if len(users[ sess.data['user'] + ':' + sess.data['password'] ]) :
for lieu in users[ sess.data['user'] + ':' + sess.data['password'] ] :
for borne in db.search('canal=*&info=<lieu>%s*' % lieu )['machine'] :
nom = borne.nom().encode('iso-8859-15').split('.')[0]
if nom not in bornes_modifiables :
bornes_modifiables.append(nom)
# construction de la liste des bornes modifiables
bornes_modifiables = []
if len(users[ sess.data['user'] + ':' + sess.data['password'] ]) :
for lieu in users[ sess.data['user'] + ':' + sess.data['password'] ] :
for borne in db.search('canal=*&info=<lieu>%s*' % lieu )['machine'] :
nom = borne.nom().encode('iso-8859-15').split('.')[0]
if nom not in bornes_modifiables :
bornes_modifiables.append(nom)
else :
# erreur d'authentification
###########################
log(sess.data['user'] + ' erreur d\'authentification' )
page.add('<font color="red">Erreur d\'authentification !</font><br><br>')
action = 'auth'
# erreur d'authentification
###########################
log(sess.data['user'] + ' erreur d\'authentification' )
page.add('<font color="red">Erreur d\'authentification !</font><br><br>')
action = 'auth'
######################################################
# page : authentification
@ -136,33 +136,33 @@ if action == 'auth' :
if action == 'desactive' and bornes_modifiables :
if form.getvalue('borne','') in bornes_modifiables :
log(sess.data['user'] + ' a désactivé %s' % form.getvalue('borne','') )
page.add('<font color="blue">La borne <b>%s</b> sera d&eacute;sactiv&eacute;e dans quelques instants</font><br><br>' % form.getvalue('borne','') )
borne = db.search('host=%s.wifi.crans.org' % form.getvalue('borne',''), 'w' )['machine'][0]
if int(borne.puissance()) > 0 :
borne.puissance(-int(borne.puissance()))
borne.save()
action = 'liste-bornes'
log(sess.data['user'] + ' a désactivé %s' % form.getvalue('borne','') )
page.add('<font color="blue">La borne <b>%s</b> sera d&eacute;sactiv&eacute;e dans quelques instants</font><br><br>' % form.getvalue('borne','') )
borne = db.search('host=%s.wifi.crans.org' % form.getvalue('borne',''), 'w' )['machine'][0]
if int(borne.puissance()) > 0 :
borne.puissance(-int(borne.puissance()))
borne.save()
action = 'liste-bornes'
else :
log(sess.data['user'] + ' a tenté de désactiver %s' % form.getvalue('borne','') )
action = 'erreur-droits'
log(sess.data['user'] + ' a tenté de désactiver %s' % form.getvalue('borne','') )
action = 'erreur-droits'
######################################################
# activation d'un borne
if action == 'active' and bornes_modifiables :
if form.getvalue('borne','') in bornes_modifiables :
log(sess.data['user'] + ' a activé %s' % form.getvalue('borne','') )
page.add('<font color="blue">La borne <b>%s</b> sera r&eacute;activ&eacute;e dans quelques instants</font><br><br>' % form.getvalue('borne','') )
borne = db.search('host=%s.wifi.crans.org' % form.getvalue('borne',''),'w' )['machine'][0]
if int(borne.puissance()) < 0 :
borne.puissance(int(borne.puissance().replace('-','')))
borne.save()
action = 'liste-bornes'
log(sess.data['user'] + ' a activé %s' % form.getvalue('borne','') )
page.add('<font color="blue">La borne <b>%s</b> sera r&eacute;activ&eacute;e dans quelques instants</font><br><br>' % form.getvalue('borne','') )
borne = db.search('host=%s.wifi.crans.org' % form.getvalue('borne',''),'w' )['machine'][0]
if int(borne.puissance()) < 0 :
borne.puissance(int(borne.puissance().replace('-','')))
borne.save()
action = 'liste-bornes'
else :
log(sess.data['user'] + ' a tenté d\'activer %s' % form.getvalue('borne','') )
page.add('<font color="red">Vous n\'&ecirc;tes pas authoris&eacute; à modifier la borne <b>%s</b></font><br><br>' % form.getvalue('borne','') )
action = 'erreur-droits'
log(sess.data['user'] + ' a tenté d\'activer %s' % form.getvalue('borne','') )
page.add('<font color="red">Vous n\'&ecirc;tes pas authoris&eacute; à modifier la borne <b>%s</b></font><br><br>' % form.getvalue('borne','') )
action = 'erreur-droits'
######################################################
# page : liste des bornes
@ -171,41 +171,41 @@ if action == 'liste-bornes' and bornes_modifiables :
page.sous_titre('Liste des bornes')
for b in bornes_modifiables :
try :
borne = db.search('host=%s.wifi.crans.org' % b)['machine'][0]
except :
log('borne non existante : %s' % b)
continue
# formulaire
page.add('<form method=\"POST\">')
page.add('<input type="hidden" name="sid" value="%s">' % sid )
page.add('<input type="hidden" name="borne" value="%s">' % b)
# titre
if '-' in borne.puissance() :
# réactivation
page.add('<b><u>%s</u></b> <font color="red">(borne d&eacute;sactiv&eacute;e)</font>' % borne.Nom().encode('iso-8859-15'))
page.add('<input type="hidden" name="action" value="active">')
else :
# désctivation
page.add('<b><u>%s</u></b> <font color="green">(borne activ&eacute;e)</font>' % borne.Nom().encode('iso-8859-15'))
page.add('<input type="hidden" name="action" value="desactive">')
page.add('<br>')
# commentaires
page.add('<table><tr><td width=\"20\">&nbsp;</td><td>')
page.add('<br>'.join( filter(lambda x : re.match("^\<.*\>", x) == None, borne.info() ) ).encode('iso-8859-15'))
page.add('</td></tr></table>')
# bouton de validation
if '-' in borne.puissance() :
page.add('<input type="submit" value="R&eacute;activer %s">' % b)
else :
page.add('<input type="submit" value="D&eacute;sactiver %s">' % b)
try :
borne = db.search('host=%s.wifi.crans.org' % b)['machine'][0]
except :
log('borne non existante : %s' % b)
continue
# formulaire
page.add('<form method=\"POST\">')
page.add('<input type="hidden" name="sid" value="%s">' % sid )
page.add('<input type="hidden" name="borne" value="%s">' % b)
# titre
if '-' in borne.puissance() :
# réactivation
page.add('<b><u>%s</u></b> <font color="red">(borne d&eacute;sactiv&eacute;e)</font>' % borne.Nom().encode('iso-8859-15'))
page.add('<input type="hidden" name="action" value="active">')
else :
# désctivation
page.add('<b><u>%s</u></b> <font color="green">(borne activ&eacute;e)</font>' % borne.Nom().encode('iso-8859-15'))
page.add('<input type="hidden" name="action" value="desactive">')
page.add('<br>')
# commentaires
page.add('<table><tr><td width=\"20\">&nbsp;</td><td>')
page.add('<br>'.join( filter(lambda x : re.match("^\<.*\>", x) == None, borne.info() ) ).encode('iso-8859-15'))
page.add('</td></tr></table>')
# bouton de validation
if '-' in borne.puissance() :
page.add('<input type="submit" value="R&eacute;activer %s">' % b)
else :
page.add('<input type="submit" value="D&eacute;sactiver %s">' % b)
# fin du formulaire
page.add('</form>')
# fin du formulaire
page.add('</form>')
# menu de fin de page
page.add( "<center><table><tr><td>%s</td><td>%s</td><td>%s</td></tr></center>" % ( bouton(url,sid,'liste-bornes','Actualiser'), bouton_menu, bouton_quitter ) )
@ -228,7 +228,7 @@ if action == 'index' :
# menu principal
page.sous_titre("Menu principal")
if bornes_modifiables :
page.add('<a href="?sid=%s&action=liste-bornes">Activation/d&eacute;sactivation d\'une borne</a><br>' % sid )
page.add('<a href="?sid=%s&action=liste-bornes">Activation/d&eacute;sactivation d\'une borne</a><br>' % sid )
# menu de bas de page
page.add("<center>%s</center>" % bouton_quitter )

View file

@ -7,85 +7,85 @@ from time import time
class session :
def __init__ (self, sid = None) :
"""
Si sid est fournit, on regarde si la session est valide ;
on soulève un exeption si il y a un problème
Si sid n'est pas fourni un créé une nouvelle session
"""
self.save = True
if sid :
# on vérifie la validité
if not os.access( self._sess_file(sid), os.W_OK ) :
raise ValueError, 'Session inconnue'
# on exporte le sid
self.sid = sid
# on lit les données
self.data = {}
f = open(self._sess_file(sid))
for i in f.readlines() :
if not i.strip() :
continue
key = i.split(' ')[0]
value = ' '.join(i.split(' ')[1:]).strip()
self.data[key] = value
if int(self.data['perime']) < int(time()) :
self.destroy()
raise ValueError, 'Session périmée'
else :
# on créé un nouveau sid
self.data = {}
ok = False
while not ok :
sid = ''.join( [ random.choice('abcdefghijklmnopqrstuvwxyz0123456789') for i in range(0,30) ])
# est ce que la session existe ?
if not os.path.exists(self._sess_file(sid)) :
# on créé un nouveau fichier avec un timeout de 60
f = os.open(self._sess_file(sid), os.O_WRONLY + os.O_CREAT , 0600)
f
# on valide
ok = True
self.sid = sid
# on initialise les données
self.data = {'timeout' : '600'}
"""
Si sid est fournit, on regarde si la session est valide ;
on soulève un exeption si il y a un problème
Si sid n'est pas fourni un créé une nouvelle session
"""
self.save = True
if sid :
# on vérifie la validité
if not os.access( self._sess_file(sid), os.W_OK ) :
raise ValueError, 'Session inconnue'
# on exporte le sid
self.sid = sid
# on lit les données
self.data = {}
f = open(self._sess_file(sid))
for i in f.readlines() :
if not i.strip() :
continue
key = i.split(' ')[0]
value = ' '.join(i.split(' ')[1:]).strip()
self.data[key] = value
if int(self.data['perime']) < int(time()) :
self.destroy()
raise ValueError, 'Session périmée'
else :
# on créé un nouveau sid
self.data = {}
ok = False
while not ok :
sid = ''.join( [ random.choice('abcdefghijklmnopqrstuvwxyz0123456789') for i in range(0,30) ])
# est ce que la session existe ?
if not os.path.exists(self._sess_file(sid)) :
# on créé un nouveau fichier avec un timeout de 60
f = os.open(self._sess_file(sid), os.O_WRONLY + os.O_CREAT , 0600)
f
# on valide
ok = True
self.sid = sid
# on initialise les données
self.data = {'timeout' : '600'}
def _sess_file (self, sid = None) :
""" Retourne le nom du fichier correspondant à la session """
if not sid :
sid = self.sid
return '/tmp/pysession-%s' % sid
""" Retourne le nom du fichier correspondant à la session """
if not sid :
sid = self.sid
return '/tmp/pysession-%s' % sid
def __del__ (self) :
""" On enregsitre la session à la destruction de l'instance """
if self.save :
# epok de peromption
self.data['perime'] = str(int(time() + int(self.data['timeout'])))
""" On enregsitre la session à la destruction de l'instance """
if self.save :
# epok de peromption
self.data['perime'] = str(int(time() + int(self.data['timeout'])))
f = open(self._sess_file(), 'w')
for k in self.data.keys() :
f.write( '%s %s\n' % (k,self.data[k]) )
f.close()
f = open(self._sess_file(), 'w')
for k in self.data.keys() :
f.write( '%s %s\n' % (k,self.data[k]) )
f.close()
def destroy(self) :
""" Supprime la session """
self.save = False
os.remove( self._sess_file() )
""" Supprime la session """
self.save = False
os.remove( self._sess_file() )
# on supprime toutes les vieilles sessions
for file in os.listdir('/tmp') :
if file[0:10] == 'pysession-' :
#print file[10:]
try :
s = session(file[10:])
s.save = False
except :
continue
#print file[10:]
try :
s = session(file[10:])
s.save = False
except :
continue