Champs lieu et nvram pour les bornes.
darcs-hash:20060320124210-68412-52dbda924c77c92466c99bc3193e418c2cbbfff2.gz
This commit is contained in:
parent
63ff14393b
commit
3c7e020440
1 changed files with 72 additions and 5 deletions
|
@ -245,7 +245,8 @@ class crans_ldap:
|
|||
'mac': 'macAddress',
|
||||
'ip': 'ipHostNumber',
|
||||
'telephone': 'tel',
|
||||
'position': 'positionBorne' }
|
||||
'position': 'positionBorne',
|
||||
'lieu': 'lieuBorne' }
|
||||
|
||||
# Les différentes classes LDAP de machines
|
||||
ldap_machines_classes = ['machineFixe', 'machineWifi', 'machineCrans', 'borneWifi']
|
||||
|
@ -280,7 +281,7 @@ class crans_ldap:
|
|||
'machineFixe': non_auto_search_machines_champs,
|
||||
'machineCrans': non_auto_search_machines_champs + ['prise'],
|
||||
'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'] }
|
||||
|
||||
# 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)
|
||||
# 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',
|
||||
'contourneGreylist', 'macAddress', 'ipHostNumber', 'host']:
|
||||
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
|
||||
for champ in ['droits', 'controle', 'paiement', 'carteEtudiant',
|
||||
'mailAlias', 'hostAlias', 'exempt']:
|
||||
'mailAlias', 'hostAlias', 'exempt', 'nvram']:
|
||||
if champ in self.modifs:
|
||||
if champ == 'controle':
|
||||
# Ce n'est pas pareil que self._init_data.get('controle', [''])
|
||||
|
@ -2822,6 +2823,72 @@ class BorneWifi(Machine):
|
|||
self._set('positionBorne', ' '.join(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):
|
||||
""" Définitions de base d'un propriétaire virtuel """
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue