From 6309d98657e9d1d3f245d3c3532013c9bcbe1319 Mon Sep 17 00:00:00 2001 From: pauget Date: Wed, 9 Mar 2005 14:47:41 +0100 Subject: [PATCH] Proprio pour les invites et adaptation de machine pour. darcs-hash:20050309134741-41617-67b3af192f56b738cd56cf2cc4ce519dab05e738.gz --- gestion/config.py | 1 + gestion/ldap_crans.py | 45 ++++++++++++++++++++++++++++++++----------- 2 files changed, 35 insertions(+), 11 deletions(-) diff --git a/gestion/config.py b/gestion/config.py index cf0d9678..046d0653 100644 --- a/gestion/config.py +++ b/gestion/config.py @@ -54,6 +54,7 @@ decouvert = -10 # à cause de leur firewall et de leur patte wifi. NETs = { 'wifi' : [ '138.231.149.0/24', '138.231.150.0/24' ], 'wifi-ens' : [ '138.231.151.0/25' ], + 'wifi-invite' : [ '138.231.151.128/25'], 'b' : [ '138.231.137.0/24' ], 'm' : [ '138.231.138.0/24' ], 'c' : [ '138.231.139.0/24' ], diff --git a/gestion/ldap_crans.py b/gestion/ldap_crans.py index b4ec0ad7..8c9ee5ec 100755 --- a/gestion/ldap_crans.py +++ b/gestion/ldap_crans.py @@ -1751,7 +1751,7 @@ class machine(base_classes_crans) : # Propriéraire inconnu mais ce n'est pas grave self.__proprietaire = None - elif t == adherent or t == club or t == crans and typ in [ 'fixe' , 'wifi' , 'borne' ] : + elif t in [ adherent, club, crans, invite ] and typ in [ 'fixe' , 'wifi' , 'borne' ] : # Machine vide self.__proprietaire = parent_or_tuple self.dn = parent_or_tuple.dn @@ -1945,10 +1945,12 @@ class machine(base_classes_crans) : # Dans quel réseau la machine doit-elle être placée ? if self.__typ == 'wifi' : - if self.proprietaire().etudes(0) == "ENS" and self.proprietaire().etudes(1) == "Pers": + if self.proprietaire().__class__ == invite : + net = config.NETs['wifi-invite'] + elif self.proprietaire().etudes(0) == "ENS" and self.proprietaire().etudes(1) == "Pers": # Personnel ENS net = config.NETs['wifi-ens'] - else: + else : net = config.NETs['wifi'] elif self.__typ == 'borne' : net = config.NETs['bornes'] @@ -2013,7 +2015,7 @@ 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 crans ou invite) """ if not self.__proprietaire : res = self.conn.search_s(','.join(self.dn.split(',')[1:]),0) @@ -2021,7 +2023,10 @@ class machine(base_classes_crans) : 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) + elif 'invite' in res[0][0] : + self.__proprietaire = invite() else : + print res[0] self.__proprietaire = crans() return self.__proprietaire @@ -2197,9 +2202,9 @@ class machine(base_classes_crans) : self._data.pop(champ) if 'ports' not in self.modifs : self.modifs.append('ports') - -class crans(crans_ldap) : - """ Classe définissant l'assoce (pour affichage de ses machines) """ + +class _fake_proprio(crans_ldap) : + """ Définitions de base d'un propriétaire virtuel """ idn = '' def __init__(s,conn=None): s.conn = conn @@ -2207,10 +2212,6 @@ class crans(crans_ldap) : s.dn = s.base_dn def id(s) : return '' - def Nom(s) : - return u"Crans" - def chbre(s) : - return u"CRA" def blacklist(s) : return [] def paiement(s) : @@ -2225,6 +2226,28 @@ class crans(crans_ldap) : for r in res : m.append(machine(r,'',s.conn)) return m + +class crans(_fake_proprio) : + """ Classe définissant l'assoce (pour affichage de ses machines) """ + def __init__(s,conn=None): + s.conn = conn + if not s.conn : s.connect() + s.dn = s.base_dn + def Nom(s) : + return u"Crans" + def chbre(s) : + return u"CRA" + +class invite(_fake_proprio) : + """ Propriétaire des machines invité """ + def __init__(s,conn=None): + s.conn = conn + if not s.conn : s.connect() + s.dn = "ou=invites," + s.base_dn + def Nom(s) : + return u"Invité" + def chbre(s) : + return u"N/A" if __name__ == '__main__' : import sys