diff --git a/gestion/gen_confs/autostatus.py b/gestion/gen_confs/autostatus.py index c304c7eb..0ee1fcdc 100755 --- a/gestion/gen_confs/autostatus.py +++ b/gestion/gen_confs/autostatus.py @@ -10,7 +10,7 @@ Utilis import sys, os, commands sys.path.append('/usr/scripts/gestion') -from ldap_crans import crans, BorneWifi +from ldap_crans import AssociationCrans, BorneWifi from gen_confs import gen_config # définition de la classe @@ -136,7 +136,7 @@ class autostatus(gen_config) : # machines crans ################ - machines = crans().machines() + machines = AssociationCrans().machines() # Quand un serveur est à la fois dans adm et dans autre chose, # on garde que le autre chose machines2 = machines diff --git a/gestion/gen_confs/firewall.py b/gestion/gen_confs/firewall.py index b5b7fc87..001dc73f 100755 --- a/gestion/gen_confs/firewall.py +++ b/gestion/gen_confs/firewall.py @@ -28,8 +28,8 @@ sys.path.append('/usr/scripts/gestion') import syslog import pwd from lock import * -from ldap_crans import crans_ldap, ann_scol, crans, hostname -from ldap_crans import Machine, MachineWifi +from ldap_crans import crans_ldap, ann_scol, hostname +from ldap_crans import AssociationCrans, Machine, MachineWifi from affich_tools import * from commands import getstatusoutput from iptools import AddrInNet @@ -285,7 +285,7 @@ class firewall_crans : serveur_maj = True # Il faut avoir payé ou être une machine du crans if db.search('paiement=ok&ip=%s'% ip)['machine'] or \ - machine[0].proprietaire().__class__ == crans: + machine[0].proprietaire().__class__ == AssociationCrans: mac_ip_maj[ip] = machine[0] else : mac_ip_maj[ip] = None diff --git a/gestion/gen_confs/generate.py b/gestion/gen_confs/generate.py index 3153be2a..1cfa787a 100755 --- a/gestion/gen_confs/generate.py +++ b/gestion/gen_confs/generate.py @@ -17,7 +17,7 @@ import sys, signal, os, getopt sys.path.append('/usr/scripts/gestion') -from ldap_crans import crans_ldap, crans, hostname +from ldap_crans import crans_ldap, hostname from lock import * from affich_tools import anim, cprint, OK from time import localtime, strftime, time, sleep, timezone diff --git a/gestion/gen_confs/supervison.py b/gestion/gen_confs/supervison.py index b2ef1cb0..a0d3d6dc 100755 --- a/gestion/gen_confs/supervison.py +++ b/gestion/gen_confs/supervison.py @@ -5,16 +5,16 @@ import sys, smtplib, commands sys.path.append('/usr/scripts/gestion') -from ldap_crans import smtpserv, crans, crans_ldap, Machine, adherent, club +from ldap_crans import smtpserv, crans_ldap, Machine, Adherent, Club from whos import machine_details, adher_details, club_details from gen_confs import gen_config from affich_tools import cprint, OK, anim -class mail : +class mail: """ Envoie un mail à toutes les personnes de la liste 'To', avec les informations détaillées des objets contenus dans 'objets' - (instances des classes adherent, machine ou club) """ + (instances des classes Adherent, Machine ou Club) """ From = 'root@crans.org' To = [ 'roots@crans.org' ] @@ -47,9 +47,9 @@ Subject: %(Subject)s vus.append(res.dn) if isinstance(res, Machine): details.append(machine_details(res)) - elif res.__class__ == adherent : + elif res.__class__ == Adherent: details.append(adher_details(res)) - elif res.__class__ == club : + elif res.__class__ == Club: details.append(club_details(res)) a.cycle() diff --git a/gestion/gen_confs/surveillance.py b/gestion/gen_confs/surveillance.py index b77bffdc..3cd1de4e 100755 --- a/gestion/gen_confs/surveillance.py +++ b/gestion/gen_confs/surveillance.py @@ -63,7 +63,7 @@ class machines(gen_config) : # recherche de toutes les machines dans ldap import sys sys.path.append('/usr/scripts/gestion') - from ldap_crans import crans_ldap, club, adherent, crans + from ldap_crans import crans_ldap, Club, Adherent, AssociationCrans machines = crans_ldap().search('ip=*')['machine'] # liste des machines (on prend que les paimement ok) @@ -78,11 +78,11 @@ class machines(gen_config) : # ajout des entrée for m in machines: - if m.proprietaire().__class__ == club: + if m.proprietaire().__class__ == Club: curseur.execute("INSERT INTO machines (ip, type, id) VALUES (inet'%s','club',%s);"%(m.ip(),m.proprietaire().id())) - elif m.proprietaire().__class__ == adherent: + elif m.proprietaire().__class__ == Adherent: curseur.execute("INSERT INTO machines (ip, type, id) VALUES (inet'%s','adherent',%s);"%(m.ip(),m.proprietaire().id())) - elif m.proprietaire().__class__ == crans: + elif m.proprietaire().__class__ == AssociationCrans: curseur.execute("INSERT INTO machines (ip, type, id) VALUES (inet'%s','crans',%s);"%(m.ip(),m.id())) # on commit diff --git a/gestion/gest_crans.py b/gestion/gest_crans.py index 1c24a5c6..d7c89f98 100755 --- a/gestion/gest_crans.py +++ b/gestion/gest_crans.py @@ -28,7 +28,8 @@ import re import affich_tools, config from lock import make_lock, remove_lock -from ldap_crans import adherent, crans_ldap, crans, club, blacklist_items, isadm, isdeconnecteur, ann_scol, droits_possibles, smtpserv, script_utilisateur +from ldap_crans import crans_ldap, blacklist_items, isadm, isdeconnecteur, ann_scol, droits_possibles, smtpserv, script_utilisateur +from ldap_crans import Adherent, AssociationCrans, Club from ldap_crans import Machine, MachineFixe, MachineWifi, MachineCrans, BorneWifi def dialog(arg) : @@ -1155,7 +1156,7 @@ def set_machine(machine) : * Remarque Si borne wifi demande aussi canal et puissance """ - if machine.proprietaire().__class__ == crans : + if machine.proprietaire().__class__ == AssociationCrans: if not isadm : arg = u'--title "Erreur" ' arg+= u'--msgbox "Vous n\'avez pas les droits de modification de cette machine.\n\n" 0 0' @@ -1184,7 +1185,7 @@ def set_machine(machine) : p = u'Mettre le lieu de la borne comme première remarque.' arg+= u'"Canaux :" 2 35 "%s" 2 43 14 0 ' % machine.canal(None,False) arg+= u'"Puissance :" 3 35 "%s" 3 47 4 0 ' % machine.puissance() - if isadm and machine.proprietaire().__class__ == crans : + if isadm and machine.proprietaire().__class__ == AssociationCrans: arg+= u'"Prise :" 8 1 "%s" 8 9 5 0 ' % machine.prise() else : @@ -1237,7 +1238,7 @@ def set_machine(machine) : try : machine.puissance(result[8]) except ValueError, c : err += c.args[0] + '\n' - if isadm and machine.proprietaire().__class__ == crans : + if isadm and machine.proprietaire().__class__ == AssociationCrans: try : machine.prise(result[-1]) except ValueError,c : err += c.args[0] + '\n' @@ -1641,7 +1642,7 @@ def select(clas,quoi,mde='') : else : raise TypeError('Argument fonction invalide') - if not valid or ( len(valid)==1 and quoi[-1] == 'a' and valid[0].__class__ == crans ) : + if not valid or (len(valid) == 1 and quoi[-1] == 'a' and valid[0].__class__ == AssociationCrans): arg = u'--title "Recherche" ' arg+= u'--msgbox "Aucun résultat.\n\n\n" 0 0' dialog(arg) @@ -1716,12 +1717,12 @@ def menu_principal() : arg+= u'--help-button --item-help --cancel-label "Quitter" ' arg+= u'--default-item "%s" ' % choix arg+= u'--menu "Que souhaitez vous faire ?" 0 55 13 ' - if proprio.__class__ == adherent : + if proprio.__class__ == Adherent : arg+= u'"mAc"' - elif proprio.__class__ == club : + elif proprio.__class__ == Club : arg+= u'"mCc"' if proprio : - if proprio.__class__ != crans : + if proprio.__class__ != AssociationCrans: arg+= u' "Modifier l\'inscription de %s" "" ' % proprio.Nom() arg+= u'"aMc" "Ajouter une machine à %s" "" ' % proprio.Nom() if becane : @@ -1763,7 +1764,7 @@ def menu_principal() : if choix=='aA' : # Inscription nouvel adhérent - proprio = adherent() + proprio = Adherent() if new_adher(proprio) : del proprio proprio = None @@ -1795,7 +1796,7 @@ def menu_principal() : elif choix=='aC' : # Ajout d'un club - proprio = club() + proprio = Club() if new_club(proprio) : del proprio ; proprio = None else : choix = 'aMc' # ajout d'une machine @@ -1831,13 +1832,13 @@ def menu_principal() : elif choix=='aKM' : # Ajout machine au crans - becane = MachineCrans(crans(db.conn)) + becane = MachineCrans(AssociationCrans(db.conn)) if set_machine(becane) : becane.restore() elif choix=='aKB' : # Ajout borne wifi - becane = BorneWifi(crans(db.conn)) + becane = BorneWifi(AssociationCrans(db.conn)) if set_machine(becane) : becane.restore() @@ -1845,7 +1846,7 @@ def menu_principal() : if choix=='aMc' : # Ajout d'une machine à l'adhérent/au club courant - if proprio.__class__ == club or proprio.etudes(0) != "ENS" or \ + if proprio.__class__ == Club or proprio.etudes(0) != "ENS" or \ proprio.etudes(1) != "Pers": # On ne peut avoir de machine fixe si on n'a pas payé @@ -1857,7 +1858,7 @@ def menu_principal() : # (expérimental) # On récupère la liste des machines fixes - if (proprio.__class__ == club or (caution_ok and \ + if (proprio.__class__ == Club or (caution_ok and \ (not proprio.machines_fixes() or proprio.droits()))): arg = u'--title "Nouvelle machine" ' arg+= u'--menu "Type de machine ?" 0 0 0 ' diff --git a/gestion/ldap_crans.py b/gestion/ldap_crans.py index ab061ef0..47fc3f38 100755 --- a/gestion/ldap_crans.py +++ b/gestion/ldap_crans.py @@ -554,10 +554,7 @@ class crans_ldap: nom_classe = (entry[1].get('objectClass') or ['none'])[0] nom_classe = nom_classe[0].upper() + nom_classe[1:] try: - # Hack temporaire, à enlever quand on aura tout renommé - if nom_classe in ['Adherent', 'Club']: - nom_classe = nom_classe.lower() - classe = globals()[nom_classe] + classe = eval(nom_classe) # On crée l'objet return classe(entry, mode, self.conn) except: @@ -803,7 +800,7 @@ class crans_ldap: # Récolte des données if graphic: cprint('Lecture base LDAP', 'gras') # Machines de l'assoce - self.__machines = crans(self.conn).machines() + self.__machines = AssociationCrans(self.conn).machines() # Machines des adhérents et clubs de l'année en cours base = self.search('paiement=ok') base = base['adherent'] + base['club'] @@ -1198,7 +1195,7 @@ class base_classes_crans(crans_ldap): ############################################################################# class base_proprietaire(base_classes_crans): - """ Méthodes de bases pour les classes adherent et club """ + """ Méthodes de bases pour les classes Adherent et Club """ def __init__(self, data=(), mode='', conn=None): """ Si data est fourni initialise l'adhérent avec les valeurs données @@ -1591,14 +1588,14 @@ class base_proprietaire(base_classes_crans): ############################################################################# -class adherent(base_proprietaire): +class Adherent(base_proprietaire): """ Classe de définition d'un adhérent """ objectClass = 'adherent' idn = 'aid' filtre_idn = '(objectClass=adherent)' ### Méthodes Nom utilisée lors de l'affichage des propriétés - ### (commune avec les classes crans et club) + ### (commune avec les classes AssociationCrans et Club) def Nom(self): """ Retourne prenom nom """ return "%s %s" % ( self.prenom() , self.nom() ) @@ -2013,7 +2010,7 @@ class adherent(base_proprietaire): # renvoie la valeur trouvée dans la base return self._data.get('rewriteMailHeaders', ['oui']) == ['oui'] -class club(base_proprietaire): +class Club(base_proprietaire): """ Classe de définition d'un club """ idn = 'cid' filtre_idn = '(objectClass=club)' @@ -2051,7 +2048,7 @@ class club(base_proprietaire): return self.search('aid=%s' % aid)['adherent'][0] else: return '' - if adher.__class__ != adherent: + if adher.__class__ != Adherent: raise ValueError if not adher.id(): @@ -2151,8 +2148,8 @@ class Machine(base_classes_crans): """ parent_or_tuple est : * soit une instance d'une classe pouvant posséder une machine - (adherent, club ou crans), la nouvelle machine lui sera alors - associée. + (Adherent, Club ou AssociationCrans), la nouvelle machine lui + sera alors associée. * soit directement le tuple définissant une machine (tel que retourné par les fonctions de recherche ldap) typ permet de définir le type de machine : wifi ou fixe, @@ -2196,7 +2193,7 @@ class Machine(base_classes_crans): # Propriéraire inconnu mais ce n'est pas grave self.__proprietaire = None - elif t in [ adherent, club, crans ] and typ in [ 'fixe' , 'wifi' , 'borne' ]: + elif t in [ Adherent, Club, AssociationCrans ] and typ in [ 'fixe' , 'wifi' , 'borne' ]: # Machine vide self.__proprietaire = parent_or_tuple self.dn = parent_or_tuple.dn @@ -2281,7 +2278,7 @@ class Machine(base_classes_crans): if l<2: raise ValueError(u"%s trop court." % champ.capitalize()) - if self.proprietaire().__class__ != crans: + if self.proprietaire().__class__ != AssociationCrans: new = new.split('.', 1)[0] for c in new[:]: if not c in (string.letters + string.digits + '-'): @@ -2329,7 +2326,7 @@ class Machine(base_classes_crans): Si la prise est inconne retourne N/A """ if new == None: - if self.proprietaire().__class__ == crans: + if self.proprietaire().__class__ == AssociationCrans: return decode(self._data.get('prise', ['N/A'])[0]) else: chbre = self.proprietaire().chbre() @@ -2396,7 +2393,7 @@ class Machine(base_classes_crans): if ip == None: if self._data.has_key('ipHostNumber'): return decode(self._data['ipHostNumber'][0]) - elif self.proprietaire().__class__ == crans and self.__typ != 'borne': + elif self.proprietaire().__class__ == AssociationCrans and self.__typ != 'borne': return '' else: return '' @@ -2412,7 +2409,7 @@ class Machine(base_classes_crans): net = config.NETs['wifi'] elif self.__typ == 'borne': net = config.NETs['bornes'] - elif self.proprietaire().__class__ == crans: + elif self.proprietaire().__class__ == AssociationCrans: net = [ '0.0.0.0/0' ] else: try: @@ -2512,16 +2509,16 @@ class Machine(base_classes_crans): def proprietaire(self): """ - retroune le propriétaire de la machine (classe adherent, club ou crans) + retroune le propriétaire de la machine (classe Adherent, Club ou AssociationCrans) """ if not self.__proprietaire: res = self.conn.search_s(','.join(self.dn.split(',')[1:]), 0) if 'adherent' in res[0][1]['objectClass']: - self.__proprietaire = adherent(res[0], self._modifiable, self.conn) + self.__proprietaire = Adherent(res[0], self._modifiable, self.conn) elif 'club' in res[0][1]['objectClass']: - self.__proprietaire = club(res[0], self._modifiable, self.conn) + self.__proprietaire = Club(res[0], self._modifiable, self.conn) else: - self.__proprietaire = crans(self.conn) + self.__proprietaire = AssociationCrans(self.conn) return self.__proprietaire @@ -2530,7 +2527,7 @@ class Machine(base_classes_crans): Enregistre la machine courante dans la base LDAP Retourne une chaîne indiquant les opération effectuées. """ - if self.proprietaire().__class__ == crans and not (isadm or user_tests.getuser() == 'www-data'): + if self.proprietaire().__class__ == AssociationCrans and not (isadm or user_tests.getuser() == 'www-data'): raise EnvironmentError(u'Il faut être administrateur pour effectuer cette opération.') if not self._init_data: @@ -2588,7 +2585,7 @@ class Machine(base_classes_crans): self.services_to_restart(s, [self.ip()]) # Regénération de l'autostatus et mail de changmement ? - if self.proprietaire().__class__ == crans: + if self.proprietaire().__class__ == AssociationCrans: self.services_to_restart('autostatus') self.services_to_restart('mail_modif', ['ip=%s' % self.ip()]) @@ -2610,7 +2607,7 @@ class Machine(base_classes_crans): def delete(self, comment=''): """ Destruction de la machines """ - if self.proprietaire().__class__ == crans and not isadm: + if self.proprietaire().__class__ == AssociationCrans and not isadm: raise EnvironmentError(u'Il faut être administrateur pour effectuer cette opération.') @@ -2908,7 +2905,7 @@ class _FakeProprio(crans_ldap): m.append(self.make(r)) return m -class crans(_FakeProprio): +class AssociationCrans(_FakeProprio): """ Classe définissant l'assoce (pour affichage de ses machines) """ def __init__(self, conn=None): _FakeProprio.__init__(self, conn) diff --git a/gestion/tools/list_firewall.py b/gestion/tools/list_firewall.py index 2526ccfa..3b7540d5 100755 --- a/gestion/tools/list_firewall.py +++ b/gestion/tools/list_firewall.py @@ -4,7 +4,7 @@ import sys sys.path.append('/usr/scripts/gestion') -from ldap_crans import crans_ldap, decode, crans +from ldap_crans import crans_ldap, decode, AssociationCrans db = crans_ldap() machines = db.search('portTCPin=*')['machine'] + db.search('portTCPout=*')['machine'] + db.search('portUDPin=*')['machine'] + db.search('portUDPout=*')['machine'] @@ -16,7 +16,7 @@ for m in machines : # on vérifie qu'on l'a pas encore traité if m.ip() in done : continue - if m.proprietaire().__class__ == crans : + if m.proprietaire().__class__ == AssociationCrans : continue done.append(m.ip()) diff --git a/gestion/whos.py b/gestion/whos.py index 4fe42570..5cdbf1d8 100755 --- a/gestion/whos.py +++ b/gestion/whos.py @@ -48,7 +48,7 @@ except: base = None -from ldap_crans import is_actif, crans_ldap, ann_scol, crans, hostname +from ldap_crans import is_actif, crans_ldap, ann_scol, AssociationCrans, hostname from ldap_crans import MachineWifi, BorneWifi from affich_tools import * import user_tests @@ -475,7 +475,7 @@ def machine_details(machine) : f+= coul(u'Propriétaire : ','gras') try : f += machine.proprio + coul(' (adhérent détruit)', 'jaune') - a = crans() + a = AssociationCrans() except : a = machine.proprietaire() f += "%s" % a.Nom() @@ -971,7 +971,7 @@ def __recherche() : try: if only_crans : - res = { 'machine' : crans().machines() , 'adherent' : [] , 'club' : [] } + res = { 'machine' : AssociationCrans().machines() , 'adherent' : [] , 'club' : [] } else : if not arg : # Pas de chaine de recherche fournie diff --git a/radius_auth.py b/radius_auth.py index f2a14e8e..e6d47b0f 100755 --- a/radius_auth.py +++ b/radius_auth.py @@ -5,7 +5,7 @@ import os, md5, sys, binascii from commands import getoutput sys.path.append('/usr/scripts/gestion') -from ldap_crans import crans_ldap, crans +from ldap_crans import crans_ldap, AssociationCrans from config import ann_scol, dat def chap_ok(password, challenge, clear_pass) : @@ -44,7 +44,7 @@ if __name__ == '__main__' : # donc sur uplink ou switch non filtré # But : éviter le spoof d'une mac d'une machine clef proprio=m[0].proprietaire() - if proprio.__class__ == crans and m[0].prise() == u'N/A' : + if proprio.__class__ == AssociationCrans and m[0].prise() == u'N/A' : sys.stdout.write("Machine du crans") sys.exit(-1) diff --git a/surveillance/deconnexion.py b/surveillance/deconnexion.py index 15aee6b0..95a7dd0d 100755 --- a/surveillance/deconnexion.py +++ b/surveillance/deconnexion.py @@ -22,7 +22,7 @@ from pyPgSQL import PgSQL sys.path.append('/usr/scripts/gestion') from config import upload, virus, p2p, NETs import smtplib -from ldap_crans import crans_ldap, crans, base_classes_crans +from ldap_crans import crans_ldap, base_classes_crans from ldap_crans import MachineWifi from time import * import locale diff --git a/surveillance/statistiques.py b/surveillance/statistiques.py index e4061e7f..3ef00ed5 100755 --- a/surveillance/statistiques.py +++ b/surveillance/statistiques.py @@ -23,7 +23,7 @@ import socket import time, random, md5 from analyse import stats from affich_tools import tableau_ng -from ldap_crans import crans +from ldap_crans import AssociationCrans ############################### # Ouverture des connections : # @@ -84,7 +84,7 @@ liste_serveurs = tableau_ng( data = liste_serveurs, # statistiques des gros uploads depuis les serveurs ################################################### -gros_uploads_des_serveurs = stats (ip_crans=[x.ip() for x in crans().machines() if x.nom() not in [u'sila.crans.org']],show=['ip_crans','ip_ext'],upload_mini=50,show_limit=100).encode('iso-8859-15') +gros_uploads_des_serveurs = stats (ip_crans=[x.ip() for x in AssociationCrans().machines() if x.nom() not in [u'sila.crans.org']],show=['ip_crans','ip_ext'],upload_mini=50,show_limit=100).encode('iso-8859-15') ############################ # Statistiques virus/p2p : #