[ldap_crans/whos] Deux corrections concernant ssh, et ajout des champs à whos, avec option -s pour afficher les fpr ssh.

Ignore-this: c7d7960aad0da2f4a510b09d97eeeec7
<> sshFingerprint n'était pas un historique de type diff
<> gpgexists au milieu de sshFingerprint()
<> on rajoute une espace après le cinquième bloc GPG

+ Affichage des fpr GPG dans whos
+ Affichage des fpr SSH dans whos avec option -s ou --ssh
+ ?

darcs-hash:20130112160140-b6762-824baacdb54a9dbd358d8762bda30d5511616674.gz
This commit is contained in:
Pierre-Elliott Bécue 2013-01-12 17:01:40 +01:00
parent d6944ca03b
commit fe958d0009
2 changed files with 17 additions and 6 deletions

View file

@ -236,7 +236,7 @@ def format_mac(mac):
def format_gpg_fingerprint(fpr):
"""
Formatage de fingerpring GPG pour les avoir de la forme
XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
"""
# longueur + fpr sans espaces
@ -257,6 +257,8 @@ def format_gpg_fingerprint(fpr):
if i != 10:
formattedfpr += " "
if i == 4:
formattedfpr += " "
return formattedfpr
@ -480,7 +482,7 @@ class CransLdap:
aid $ chbre $ mail $ mailAlias $ canonicalAlias $
mid $ macAddress $ host $ hostAlias $ ipHostNumber $
gpgFingerprint
gpgFingerprint $ sshFingerprint
Retourne le dn du lock
"""
@ -1205,7 +1207,7 @@ class BaseClasseCrans(CransLdap):
for champ in ['droits', 'controle', 'paiement', 'carteEtudiant',
'mailAlias', 'hostAlias', 'exempt', 'nvram',
'portTCPin', 'portTCPout', 'portUDPin', 'portUDPout',
'homepageAlias', 'imprimeurClub', 'gpgFingerprint']:
'homepageAlias', 'imprimeurClub', 'gpgFingerprint', 'sshFingerprint']:
if champ in self.modifs:
if champ == 'controle':
# Ce n'est pas pareil que self._init_data.get('controle', [''])
@ -3024,7 +3026,7 @@ Contactez nounou si la MAC est bien celle d'une carte.""", 3)
else:
index = -1
#if gpgexists(new):
#if sshexists(new):
# raise ValueError(u"FPR existant ou correspondand à un compte.")
if index != -1:

View file

@ -37,6 +37,7 @@ le mode d'affichage condensé au lieu du mode détaillé (défaut %(limit_aff_de
d'historique affichées (défaut %(limit_aff_historique)i)
-d <num> ou --limit-blacklist=<num> : limitation du nombre de lignes
d'historique des déconnexions affichées (défaut %(limit_aff_blacklist)i)
-s ou --ssh : affiche les fingerpring ssh des machines
"""
try:
@ -63,6 +64,7 @@ limit_aff_machines = 15
limit_aff_historique = 4
limit_aff_blacklist = 4
aff_ipsec = 0
aff_ssh = 0
################################################################################
### Fonctions utiles
@ -434,6 +436,8 @@ def adher_details(adher) :
f += GL
f += RMH
f += u'\n'
if len(adher.gpgFingerprint()) > 0:
f += u"\n".join([coul(u'Fingerprint GPG : ', 'gras') + u"%s" % (i) for i in adher.gpgFingerprint()])+"\n"
try:
forward = file("/home/%s/.forward" % adher.compte()).readlines()
if len(forward) > 1:
@ -600,6 +604,9 @@ def machine_details(machine) :
f+= coul(u'IP : ','gras') + "%s\t\t" %machine.ip()
f+= coul(u'MAC : ','gras') + "%s\n" %machine.mac()
if len(machine.sshFingerprint()) > 0 and aff_ssh:
f += u"\n".join([coul(u'Fingerprint SSH : ', 'gras') + u"%s" % (i) for i in machine.sshFingerprint()])+"\n"
# Propriétaire
f+= coul(u'Propriétaire : ','gras')
try :
@ -1093,7 +1100,7 @@ def __recherche() :
"""
Recherche et affichage des résultats à partir des options founies (sys.argv)
"""
global aff_ipsec, limit_aff_details, limit_aff_historique, limit_aff_blacklist, debug
global aff_ipsec, aff_ssh, limit_aff_details, limit_aff_historique, limit_aff_blacklist, debug
# Récupération des options
if len(sys.argv) == 1 :
@ -1101,7 +1108,7 @@ def __recherche() :
__usage_brief()
try :
options, arg = getopt.getopt(sys.argv[1:], 'hamctbil:L:d:', [ 'debug', 'help', 'adherent', 'machine', 'club' , 'tech', 'bornes', 'limit=', 'limit-historique=', 'limit-blacklist=', 'ipsec', 'crans' ])
options, arg = getopt.getopt(sys.argv[1:], 'hamcstbil:L:d:', [ 'debug', 'help', 'adherent', 'machine', 'club' , 'tech', 'bornes', 'limit=', 'limit-historique=', 'limit-blacklist=', 'ipsec', 'crans', 'ssh' ])
except getopt.error, msg :
__usage_brief(unicode(msg))
@ -1164,6 +1171,8 @@ def __recherche() :
elif opt in [ '-i', '--ipsec' ] :
# Affichage des clefs ipsec
aff_ipsec = 1
elif opt in [ '-s', '--ssh' ]:
aff_ssh = 1
if only_adh + only_mac + only_club + only_bornes > 1 :
__usage_brief(u'Options utilisées incompatibles')