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',
|
'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 """
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue