[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
|
import lc
|
||||||
from CPS import TailCall, tailcaller, Continue
|
from CPS import TailCall, tailcaller, Continue
|
||||||
|
from CPS import unicode_of_Error
|
||||||
|
|
||||||
class Dialog(lc.Dialog):
|
class Dialog(lc.Dialog):
|
||||||
|
|
||||||
|
|
|
@ -26,11 +26,12 @@ from CPS import TailCall, tailcaller, Continue, TailCaller
|
||||||
|
|
||||||
|
|
||||||
class Dialog(CPS.Dialog):
|
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)
|
super(Dialog, self).__init__(debug_enable=debug_enable)
|
||||||
# On initialise le moteur de rendu en spécifiant qu'on va faire du dialog
|
# On initialise le moteur de rendu en spécifiant qu'on va faire du dialog
|
||||||
printing.template(dialog=True)
|
printing.template(dialog=True)
|
||||||
self.ldap_test = ldap_test
|
self.ldap_test = ldap_test
|
||||||
|
self.custom_user = custom_user
|
||||||
self.check_ldap()
|
self.check_ldap()
|
||||||
|
|
||||||
def has_right(self, liste, obj=None):
|
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
|
# Si un nom d'utilisateur est donné sur la ligne de commande
|
||||||
# et qu'on a les droits nounou, on l'utilise
|
# et qu'on a les droits nounou, on l'utilise
|
||||||
if sys.argv[1:] and attributs.nounou in self.conn.droits:
|
if self.custom_user and attributs.nounou in self.conn.droits:
|
||||||
for u in sys.argv[1:]:
|
luser=self.conn.search(u'(&(uid=%s)(objectClass=cransAccount))' % self.custom_user)
|
||||||
luser=self.conn.search(u'(&(uid=%s)(objectClass=cransAccount))' % u)
|
|
||||||
if luser:
|
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.droits = [str(d) for d in luser[0]['droits']]
|
||||||
self.conn.dn = luser[0].dn
|
self.conn.dn = luser[0].dn
|
||||||
break
|
|
||||||
a = attributs
|
a = attributs
|
||||||
allowed_right = [a.cableur, a.tresorier, a.bureau, a.nounou, a.imprimeur]
|
allowed_right = [a.cableur, a.tresorier, a.bureau, a.nounou, a.imprimeur]
|
||||||
for droit in allowed_right:
|
for droit in allowed_right:
|
||||||
|
|
|
@ -15,6 +15,7 @@ Licence : GPLv3
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
import argparse
|
||||||
if '/usr/scripts' not in sys.path:
|
if '/usr/scripts' not in sys.path:
|
||||||
sys.path.append('/usr/scripts')
|
sys.path.append('/usr/scripts')
|
||||||
|
|
||||||
|
@ -152,5 +153,10 @@ class GestCrans(adherent.Dialog, club.Dialog, machine.Dialog):
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
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')
|
os.system('clear')
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue