[gest_crans_lc] Utilisation de argparse
c'est plus mieux comme ça
This commit is contained in:
parent
2d04dedf7b
commit
c95859507e
3 changed files with 16 additions and 10 deletions
|
@ -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):
|
||||
|
||||
|
|
|
@ -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 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 = u
|
||||
self.conn.current_login = self.custom_user
|
||||
self.conn.droits = [str(d) for d in luser[0]['droits']]
|
||||
self.conn.dn = luser[0].dn
|
||||
break
|
||||
a = attributs
|
||||
allowed_right = [a.cableur, a.tresorier, a.bureau, a.nounou, a.imprimeur]
|
||||
for droit in allowed_right:
|
||||
|
|
|
@ -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')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue