diff --git a/gestion/whos.py b/gestion/whos.py index 5856313a..4f46232f 100755 --- a/gestion/whos.py +++ b/gestion/whos.py @@ -48,6 +48,7 @@ except: from ldap_crans import is_actif , crans_ldap, ann_scol, crans, hostname from affich_tools import * from hptools import sw_chbre +import user_tests import popen2 limit_aff_details = 1 @@ -596,17 +597,20 @@ def borne_etat(borne) : def borne_clients(borne) : """Renvoie la liste des adresses MAC associées à la borne""" macs = [] - # Sur nectaris uniquement dans un premier temps - if hostname == 'nectaris': - try: - wl = popen2.Popen3("ssh -o StrictHostKeyChecking=no -i /etc/wifi/ssh/wifi root@%s wl assoclist 2> /dev/null" % borne) - wl.tochild.close() - for line in wl.fromchild.readlines(): - # Chaque ligne est de la forme - # assoclist 00:11:22:33:44:55 - macs.append(line.split(" ")[1].strip()) - except: - pass + # Uniquement possible pour les admins et si on a la clef + for clef in ["/etc/wifi/ssh/wifi","/usr/scripts/gestion/clef-wifi"]: + if os.path.isfile(clef) and user_tests.isadm(): + try: + wl = popen2.Popen3("ssh -o StrictHostKeyChecking=no -i %s root@%s wl assoclist 2> /dev/null" % (clef, + borne)) + wl.tochild.close() + for line in wl.fromchild.readlines(): + # Chaque ligne est de la forme + # assoclist 00:11:22:33:44:55 + macs.append(line.split(" ")[1].strip()) + except: + pass + break # Pas la peine d'essayer une autre clef return macs def prise_etat(chbre) :