diff --git a/gestion/dialog/machine.py b/gestion/dialog/machine.py index fbd60d41..2e461d25 100644 --- a/gestion/dialog/machine.py +++ b/gestion/dialog/machine.py @@ -60,15 +60,19 @@ class Dialog(certificat.Dialog, blacklist.Dialog): title="Paramètres machine", backtitle="Gestion des machines du Crans") - def check_host(host, objectClass): + def check_host(host, objectClass, realm): # Si c'est une machine wifi, host doit finir par wifi.crans.org - if "machineWifi" == objectClass or 'borneWifi' == objectClass: + if "machineWifi" == objectClass or 'borneWifi' == objectClass or realm == 'bornes': hostend = ".wifi.crans.org" # Si c'est une machine wifi, host doit finir par crans.org - elif "machineFixe" == objectClass: + elif "machineFixe" == objectClass or realm == 'serveurs': hostend = ".crans.org" # Si l'object class est machineCrans, pas de vérification elif "machineCrans" == objectClass: + if realm == 'adm': + hostend = ".adm.crans.org" + if not '.' in host: + host = host + hostend return host # Sinon, libre à chachun d'ajouter d'autres objectClass ou de filtrer # plus finement fonction des droits de self.conn.droits @@ -125,7 +129,7 @@ class Dialog(certificat.Dialog, blacklist.Dialog): values = [v for v in values.split(separateur) if v] # Pour host, on fait quelques vérification de syntaxe if a.ldap_name == 'host': - attrs[a.ldap_name]=check_host(values, objectClass) + attrs[a.ldap_name]=check_host(values, objectClass, realm) else: attrs[a.ldap_name]=values # Soit on édite une machine existante