Champs lieu et nvram pour les bornes.

darcs-hash:20060320124210-68412-52dbda924c77c92466c99bc3193e418c2cbbfff2.gz
This commit is contained in:
glondu 2006-03-20 13:42:10 +01:00
parent 63ff14393b
commit 3c7e020440

View file

@ -245,7 +245,8 @@ class crans_ldap:
'mac': 'macAddress', 'mac': 'macAddress',
'ip': 'ipHostNumber', 'ip': 'ipHostNumber',
'telephone': 'tel', 'telephone': 'tel',
'position': 'positionBorne' } 'position': 'positionBorne',
'lieu': 'lieuBorne' }
# Les différentes classes LDAP de machines # Les différentes classes LDAP de machines
ldap_machines_classes = ['machineFixe', 'machineWifi', 'machineCrans', 'borneWifi'] ldap_machines_classes = ['machineFixe', 'machineWifi', 'machineCrans', 'borneWifi']
@ -280,7 +281,7 @@ class crans_ldap:
'machineFixe': non_auto_search_machines_champs, 'machineFixe': non_auto_search_machines_champs,
'machineCrans': non_auto_search_machines_champs + ['prise'], 'machineCrans': non_auto_search_machines_champs + ['prise'],
'borneWifi': non_auto_search_machines_champs + \ 'borneWifi': non_auto_search_machines_champs + \
['prise', 'puissance', 'canal', 'hotspot', 'positionBorne'], ['prise', 'puissance', 'canal', 'hotspot', 'positionBorne', 'lieuBorne', 'nvram'],
'machineWifi': non_auto_search_machines_champs + ['ipsec'] } 'machineWifi': non_auto_search_machines_champs + ['ipsec'] }
# tous les champs de recherche # tous les champs de recherche
@ -1037,7 +1038,7 @@ class base_classes_crans(crans_ldap):
# Formate les entrées de l'historique de la forme champ (ancien -> nouveau) # Formate les entrées de l'historique de la forme champ (ancien -> nouveau)
# On suppose que le champ apparaît forcément dans l'enregistrement # On suppose que le champ apparaît forcément dans l'enregistrement
for champ in ['chbre', 'nom', 'prenom', 'mail', 'tel', for champ in ['chbre', 'nom', 'prenom', 'mail', 'tel', 'lieu',
'puissance', 'canal', 'prise', 'responsable', 'puissance', 'canal', 'prise', 'responsable',
'contourneGreylist', 'macAddress', 'ipHostNumber', 'host']: 'contourneGreylist', 'macAddress', 'ipHostNumber', 'host']:
if champ in self.modifs: if champ in self.modifs:
@ -1055,7 +1056,7 @@ class base_classes_crans(crans_ldap):
# Formate les entrées de l'historique de la forme champ+diff-diff # Formate les entrées de l'historique de la forme champ+diff-diff
for champ in ['droits', 'controle', 'paiement', 'carteEtudiant', for champ in ['droits', 'controle', 'paiement', 'carteEtudiant',
'mailAlias', 'hostAlias', 'exempt']: 'mailAlias', 'hostAlias', 'exempt', 'nvram']:
if champ in self.modifs: if champ in self.modifs:
if champ == 'controle': if champ == 'controle':
# Ce n'est pas pareil que self._init_data.get('controle', ['']) # Ce n'est pas pareil que self._init_data.get('controle', [''])
@ -2822,6 +2823,72 @@ class BorneWifi(Machine):
self._set('positionBorne', ' '.join(new)) self._set('positionBorne', ' '.join(new))
return new return new
def lieu(self, new=False):
"""
Définit et renvoie le lieu d'une borne wifi.
new peut être False (renvoie la valeur actuelle), None
(suppression du champ), ou une chaîne définissant
la nouvelle valeur. Renvoie dans tous les cas la
nouvelle valeur.
"""
if new == False:
return (self._data.get('lieuBorne') or [''])[0] or None
elif new == None:
self._set('lieuBorne', [])
return None
else:
self._set('lieuBorne', new)
return new
def nvram(self, champ=None, new=False):
"""
Définit et renvoie un champ nvram d'une borne wifi.
Si champ=None, renvoie sous forme de liste key=value tous
les champs. On peut aussi définir tous les champs en
passant dans new la liste.
Sinon, définit et renvoie la valeur du champ indiqué.
Le champ est juste retourné, supprimé ou modifié selon
que new vaut False, None ou autre chose.
"""
current = self._data.get('nvram', [])[:]
if champ == None:
if type(new) is list:
self.set('nvram', new)
return new
else:
return current
# Recherche l'index du champ
index = None
for i in range(len(current)):
current_champ = current[i]
if current_champ.startswith(champ):
sep_index = current_champ.find('=') + 1
if sep_index > 0:
current_champ = current_champ[sep_index:]
index = i
break
if new == False:
return index != None and current_champ or None
elif new == None:
if index != None:
del current[index]
self._set('nvram', current)
return None
else:
if index == None:
current.append("%s=%s" % (champ, new))
else:
current[index] = "%s=%s" % (champ, new)
self._set('nvram', current)
return new
class _fake_proprio(crans_ldap): class _fake_proprio(crans_ldap):
""" Définitions de base d'un propriétaire virtuel """ """ Définitions de base d'un propriétaire virtuel """