suppression du problème d'accent pour de bon ; ajout de souplesse dans l'entree des mac et nom de machine (normalisation silencieuse du nom de machine)
This commit is contained in:
parent
abb643bdbe
commit
b95925fb7d
@ -237,6 +237,9 @@ class MachineAddController(AuthenticatedRestController):
|
||||
member_base_dn = ldap_config.username_base_dn + residence_dn
|
||||
member = Member.get_by_uid(self.user, residence_dn, member_uid)
|
||||
|
||||
mac = mac.strip()
|
||||
name = name.strip()
|
||||
|
||||
#Vérification que l'adresse mac soit correcte
|
||||
mac_match = re.match('^([0-9A-Fa-f]{2}[:-]?){5}([0-9A-Fa-f]{2})$', mac)
|
||||
if mac_match is None:
|
||||
@ -275,9 +278,9 @@ class MachineAddController(AuthenticatedRestController):
|
||||
raise Exception("mac address already exist")
|
||||
#endif
|
||||
|
||||
# Vérification que le nom de machine n'existe pas déjà
|
||||
# Note : on cherche sur toute la résidence (residence_dn)
|
||||
|
||||
# Nettoyage des erreurs communes
|
||||
name = name.strip().replace(" ", "-").replace("_", "-")
|
||||
name = Translations.strip_accents(name)
|
||||
|
||||
# On modifie silencieusement le nom de la machine si il existe déjà
|
||||
def try_name(name, number):
|
||||
|
@ -41,6 +41,9 @@ class Ldap(object):
|
||||
scope : portée de recherche (SCOPE_SUBTREE, SCOPE_BASE, SCOPE_ONELEVEL)
|
||||
"""
|
||||
def search(self, dn, filter, scope = ldap.SCOPE_SUBTREE):
|
||||
dn = Ldap.str_attribute(dn)
|
||||
filter = Ldap.str_attribute(filter)
|
||||
|
||||
try:
|
||||
results = self.__connection.search_s(dn, scope, filter)
|
||||
except ldap.NO_SUCH_OBJECT:
|
||||
@ -90,13 +93,11 @@ class Ldap(object):
|
||||
@staticmethod
|
||||
def str_attributes(attributes):
|
||||
def str_value(value):
|
||||
if isinstance(value, str):
|
||||
return value
|
||||
elif isinstance(value, list):
|
||||
return [str(subval) for subval in value]
|
||||
if isinstance(value, list):
|
||||
return [Ldap.str_attribute(subval) for subval in value]
|
||||
#end if
|
||||
|
||||
return str(value)
|
||||
return Ldap.str_attribute(value)
|
||||
#end def
|
||||
|
||||
return dict([
|
||||
@ -105,6 +106,18 @@ class Ldap(object):
|
||||
])
|
||||
#end def
|
||||
|
||||
@staticmethod
|
||||
def str_attribute(value):
|
||||
if isinstance(value, str):
|
||||
return value
|
||||
elif isinstance(value, unicode):
|
||||
return unicode.encode(value, "utf-8")
|
||||
#end if
|
||||
|
||||
return str(value)
|
||||
#end def
|
||||
|
||||
|
||||
""" Remplace les attributs d'un dn donné
|
||||
dn : adresse de l'élément
|
||||
attributes : dictionnaire d'attributs
|
||||
|
Loading…
Reference in New Issue
Block a user