[gest_crans_lc] Utilisation de argparse

c'est plus mieux comme ça
This commit is contained in:
Valentin Samir 2014-11-29 18:03:03 +01:00
parent 2d04dedf7b
commit c95859507e
3 changed files with 16 additions and 10 deletions

View file

@ -21,6 +21,7 @@ import lc_ldap.attributs as attributs
import lc
from CPS import TailCall, tailcaller, Continue
from CPS import unicode_of_Error
class Dialog(lc.Dialog):

View file

@ -26,11 +26,12 @@ from CPS import TailCall, tailcaller, Continue, TailCaller
class Dialog(CPS.Dialog):
def __init__(self, debug_enable=False, ldap_test=False):
def __init__(self, debug_enable=False, ldap_test=False, custom_user=None):
super(Dialog, self).__init__(debug_enable=debug_enable)
# On initialise le moteur de rendu en spécifiant qu'on va faire du dialog
printing.template(dialog=True)
self.ldap_test = ldap_test
self.custom_user = custom_user
self.check_ldap()
def has_right(self, liste, obj=None):
@ -67,14 +68,12 @@ class Dialog(CPS.Dialog):
# Si un nom d'utilisateur est donné sur la ligne de commande
# et qu'on a les droits nounou, on l'utilise
if sys.argv[1:] and attributs.nounou in self.conn.droits:
for u in sys.argv[1:]:
luser=self.conn.search(u'(&(uid=%s)(objectClass=cransAccount))' % u)
if luser:
self.conn.current_login = u
self.conn.droits = [str(d) for d in luser[0]['droits']]
self.conn.dn = luser[0].dn
break
if self.custom_user and attributs.nounou in self.conn.droits:
luser=self.conn.search(u'(&(uid=%s)(objectClass=cransAccount))' % self.custom_user)
if luser:
self.conn.current_login = self.custom_user
self.conn.droits = [str(d) for d in luser[0]['droits']]
self.conn.dn = luser[0].dn
a = attributs
allowed_right = [a.cableur, a.tresorier, a.bureau, a.nounou, a.imprimeur]
for droit in allowed_right:

View file

@ -15,6 +15,7 @@ Licence : GPLv3
import os
import sys
import argparse
if '/usr/scripts' not in sys.path:
sys.path.append('/usr/scripts')
@ -152,5 +153,10 @@ class GestCrans(adherent.Dialog, club.Dialog, machine.Dialog):
if __name__ == '__main__':
main(GestCrans(ldap_test="--test" in sys.argv[1:], debug_enable="--debug" in sys.argv[1:]))
parser = argparse.ArgumentParser(description='Interface utilisateur du système de gestion des machines et adhérents du crans')
parser.add_argument('--test', help='Utiliser la base de test', dest='ldap_test', default=False, action='store_true')
parser.add_argument('--debug', help='Afficher des info de débug comme les tracebacks', dest='debug_enable', default=False, action='store_true')
parser.add_argument('login', help="Se connecter en tant qu'un autre utilisateur", type=str, default=None, nargs='?')
args = parser.parse_args()
main(GestCrans(ldap_test=args.ldap_test, debug_enable=args.debug_enable, custom_user=args.login))
os.system('clear')