81 lines
2 KiB
Python
Executable file
81 lines
2 KiB
Python
Executable file
#!/bin/bash /usr/scripts/python.sh
|
|
# -*- coding: utf-8 -*-
|
|
|
|
from __future__ import print_function
|
|
|
|
import pika
|
|
import json
|
|
import sys
|
|
import argparse
|
|
from lc_ldap.shortcuts import lc_ldap_admin
|
|
from affich_tools import prompt
|
|
import lc_ldap.filter2 as filter
|
|
|
|
from client import Ticket
|
|
|
|
ldap = lc_ldap_admin()
|
|
|
|
conf_wifi_only = True
|
|
conf_reset_password = False
|
|
conf_filter = None
|
|
|
|
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument("--all", help="Affiche toutes les machines, fixe et mobiles", action="store_true")
|
|
parser.add_argument("--pwd", '--pass', help="Réinitialise le mot de passe de l'adhérent", action="store_true")
|
|
parser.add_argument("--debug", help="Réinitialise le mot de passe de l'adhérent", action="store_true")
|
|
parser.add_argument("--aux", help="Choisir l'imprimante auxilliaire", action="store_true")
|
|
parser.add_argument("conf_filter", help="Filtre pour la recherche d'un adhérent dans la bas")
|
|
args = parser.parse_args()
|
|
|
|
|
|
if args.all:
|
|
conf_wifi_only = False
|
|
elif args.pwd:
|
|
conf_reset_password = True
|
|
elif args.debug:
|
|
pass
|
|
elif args.aux:
|
|
pass
|
|
|
|
conf_filter = args.conf_filter
|
|
|
|
f = filter.human_to_ldap(conf_filter.decode('utf-8'))
|
|
res = ldap.search(f, mode='rw')
|
|
if len(res) > 1:
|
|
print("More than one result")
|
|
exit(1)
|
|
elif not res:
|
|
print("Nobody found")
|
|
exit(2)
|
|
else:
|
|
item = res[0]
|
|
if 'uid' not in item:
|
|
conf_reset_password = False
|
|
|
|
item.display()
|
|
if conf_reset_password:
|
|
print("Le mot de passe (compte Crans) sera également réinitialisé")
|
|
|
|
while True:
|
|
c = prompt("[O/N]").lower()
|
|
if c == 'n':
|
|
exit()
|
|
elif c == 'o':
|
|
break
|
|
|
|
ticket = Ticket(args.debug,args.aux)
|
|
if 'uid' in item and conf_reset_password:
|
|
ticket.reset_password(item)
|
|
|
|
if item.ldap_name is 'facture':
|
|
ticket.add_facture(item)
|
|
elif hasattr(item, 'machines'):
|
|
for m in item.machines():
|
|
if not conf_wifi_only or 'machineWifi' in m['objectClass']:
|
|
ticket.add_machine(m)
|
|
else:
|
|
ticket.add_machine(item)
|
|
|
|
ticket.print()
|
|
|