Ajout d'une macro pour faire une recherche bourrine
* whos -w ruoska recherche à la sauvage ruoska contre plein d'attributs * Attention, ça wildcarde à la fin
This commit is contained in:
parent
3944441033
commit
8c41ce5a5b
1 changed files with 26 additions and 1 deletions
|
@ -33,6 +33,9 @@ def explore_db(args):
|
||||||
dataLen = sum([len(elem) for elem in data.itervalues()])
|
dataLen = sum([len(elem) for elem in data.itervalues()])
|
||||||
if dataLen:
|
if dataLen:
|
||||||
for (key, elem) in data.iteritems():
|
for (key, elem) in data.iteritems():
|
||||||
|
if len(elem) == 0:
|
||||||
|
continue
|
||||||
|
|
||||||
_header = affichage.style(u"Résultats de type %s trouvés dans la base." % (key,), ['cyan'])
|
_header = affichage.style(u"Résultats de type %s trouvés dans la base." % (key,), ['cyan'])
|
||||||
print _header.encode(ENCODING)
|
print _header.encode(ENCODING)
|
||||||
if len(elem) == 1:
|
if len(elem) == 1:
|
||||||
|
@ -58,6 +61,8 @@ def search_ldap(args):
|
||||||
|
|
||||||
if args.macro_filtre:
|
if args.macro_filtre:
|
||||||
search_filter = filter_macro(search_filter)
|
search_filter = filter_macro(search_filter)
|
||||||
|
elif args.wild:
|
||||||
|
search_filter = wild_search_filter(search_filter)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
resultats = LDAP.search(search_filter, sizelimit=args.limite)
|
resultats = LDAP.search(search_filter, sizelimit=args.limite)
|
||||||
|
@ -119,6 +124,23 @@ def filter_macro(filtre):
|
||||||
|
|
||||||
return filtre
|
return filtre
|
||||||
|
|
||||||
|
def wild_search_filter(filtre):
|
||||||
|
"""Recherche sur un gros volume d'attributs dans la base de données"""
|
||||||
|
|
||||||
|
kw = filtre[1:-1]
|
||||||
|
|
||||||
|
attr_list = [
|
||||||
|
u'nom', u'prenom', u'tel', u'mail', u'chbre', u'mailAlias', u'canonicalAlias', u'mailExt', u'uid',
|
||||||
|
u'macAddress', u'host', u'hostAlias', u'ipHostNumber', u'ip6HostNumber',
|
||||||
|
]
|
||||||
|
|
||||||
|
filtre = u"(|"
|
||||||
|
for elem in attr_list:
|
||||||
|
filtre += u"(%s=%s*)" % (elem, kw)
|
||||||
|
filtre += u")"
|
||||||
|
|
||||||
|
return filtre
|
||||||
|
|
||||||
def limits(data, args):
|
def limits(data, args):
|
||||||
"""Applique les limitations dans la recherche.
|
"""Applique les limitations dans la recherche.
|
||||||
Les cas sont a priori conflictuels.
|
Les cas sont a priori conflictuels.
|
||||||
|
@ -172,7 +194,6 @@ if __name__ == "__main__":
|
||||||
parser = argparse.ArgumentParser(description="Recherche dans la base des adhérents", add_help=False)
|
parser = argparse.ArgumentParser(description="Recherche dans la base des adhérents", add_help=False)
|
||||||
parser.add_argument('-A', '--adresse', help="Affiche l'adresse de l'adhérent.", action="store_true")
|
parser.add_argument('-A', '--adresse', help="Affiche l'adresse de l'adhérent.", action="store_true")
|
||||||
parser.add_argument('-d', '--blacklist', type=int, help="Choix du nombre d'entrées blacklist à afficher pour les entrées détaillées.", action="store", default=10)
|
parser.add_argument('-d', '--blacklist', type=int, help="Choix du nombre d'entrées blacklist à afficher pour les entrées détaillées.", action="store", default=10)
|
||||||
parser.add_argument('-f', '--macro_filtre', help="Flag activant la gestion des macros pour le filtre LDAP.", action="store_true")
|
|
||||||
parser.add_argument('-h', '--help', help="Affiche ce message et quitte.", action="store_true")
|
parser.add_argument('-h', '--help', help="Affiche ce message et quitte.", action="store_true")
|
||||||
parser.add_argument('-i', '--ipsec', help="Affichage de la clef wifi de la machine.", action="store_true")
|
parser.add_argument('-i', '--ipsec', help="Affichage de la clef wifi de la machine.", action="store_true")
|
||||||
parser.add_argument('-l', '--limite', type=int, help="Modifier la taille limite de recherche dans la base LDAP", action="store", default=1000)
|
parser.add_argument('-l', '--limite', type=int, help="Modifier la taille limite de recherche dans la base LDAP", action="store", default=1000)
|
||||||
|
@ -184,6 +205,10 @@ if __name__ == "__main__":
|
||||||
parser.add_argument('-v', '--verbose', help="Rend le script (très) verbeux.", action="store_true")
|
parser.add_argument('-v', '--verbose', help="Rend le script (très) verbeux.", action="store_true")
|
||||||
parser.add_argument('filtre', type=str, nargs="?", help="Le filtre whos à utiliser")
|
parser.add_argument('filtre', type=str, nargs="?", help="Le filtre whos à utiliser")
|
||||||
|
|
||||||
|
macro_group = parser.add_mutually_exclusive_group(required=False)
|
||||||
|
macro_group.add_argument('-f', '--macro_filtre', help="Flag activant la gestion des macros pour le filtre LDAP.", action="store_true")
|
||||||
|
macro_group.add_argument('-w', '--wild', help="Cherche de façon agressive dans la base de données à partir du filtre", action="store_true")
|
||||||
|
|
||||||
type_group = parser.add_mutually_exclusive_group(required=False)
|
type_group = parser.add_mutually_exclusive_group(required=False)
|
||||||
type_group.add_argument('-a', '--adherent', help="Limite l'affichage aux adhérents.", action="store_true")
|
type_group.add_argument('-a', '--adherent', help="Limite l'affichage aux adhérents.", action="store_true")
|
||||||
type_group.add_argument('--adm', help="Limite l'affichage aux machines adm.", action="store_true")
|
type_group.add_argument('--adm', help="Limite l'affichage aux machines adm.", action="store_true")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue