diff --git a/shortcuts.py b/shortcuts.py index 24eb5be..fa955e6 100644 --- a/shortcuts.py +++ b/shortcuts.py @@ -6,13 +6,25 @@ import sys import os -import lc_ldap as module_qui_a_le_meme_nom_que_sa_classe_principale -import variables - import functools from ldap import SERVER_DOWN from time import sleep +# Import du fichier de secrets. Le kludge de path ci-dessous ne devrait plus +# avoir lieu dans le futur +try: + from gestion import secrets_new as secrets +except ImportError: + sys.stderr.write("lc_ldap shortcuts: shaa, cannot import secrets_new. " + + "try again with /usr/scripts/ in PYTHONPATH " + + "(argv: %s)\n" % " ".join(sys.argv)) + sys.path.append("/usr/scripts") + from gestion import secrets_new as secrets + sys.path.pop() + +import lc_ldap as module_qui_a_le_meme_nom_que_sa_classe_principale +import variables + #: Pour enregistrer dans l'historique, on a besoin de savoir qui exécute le script #: Si le script a été exécuté via un sudo, la variable SUDO_USER (l'utilisateur qui a effectué le sudo) #: est plus pertinente que USER (qui sera root) @@ -22,13 +34,6 @@ current_user = os.getenv("SUDO_USER") or os.getenv("USER") or os.getenv("LOGNAME if isinstance(current_user, str): current_user = current_user.decode("utf-8") -# Quand on a besoin du fichier de secrets -def import_secrets(): - """Importe le fichier de secrets.""" - if not "/etc/crans/secrets/" in sys.path: - sys.path.append("/etc/crans/secrets/") - import secrets - return secrets def lc_ldap(*args, **kwargs): """Renvoie une connexion à la base LDAP.""" @@ -57,10 +62,9 @@ def lc_ldap_admin(*args, **kwargs): Possible seulement si on peut lire secrets.py """ - secrets = import_secrets() kwargs["uri"] = 'ldap://ldap.adm.crans.org/' - kwargs["dn"] = secrets.ldap_auth_dn - kwargs["cred"] = secrets.ldap_password + kwargs["dn"] = secrets.get('ldap_auth_dn') + kwargs["cred"] = secrets.get('ldap_password') kwargs.setdefault("user", current_user) return module_qui_a_le_meme_nom_que_sa_classe_principale.lc_ldap(*args, **kwargs) @@ -69,10 +73,9 @@ def lc_ldap_readonly(*args, **kwargs): Possible seulement si on peut lire secrets.py """ - secrets = import_secrets() kwargs["uri"] = 'ldap://ldap.adm.crans.org/' - kwargs["dn"] = secrets.ldap_readonly_auth_dn - kwargs["cred"] = secrets.ldap_readonly_password + kwargs["dn"] = secrets.get('ldap_readonly_auth_dn') + kwargs["cred"] = secrets.get('ldap_readonly_password') kwargs.setdefault("user", current_user) return module_qui_a_le_meme_nom_que_sa_classe_principale.lc_ldap(*args, **kwargs) @@ -89,9 +92,8 @@ def lc_ldap_local(*args, **kwargs): qui est problématique). """ - secrets = import_secrets() - auth_dn = secrets.ldap_readonly_auth_dn - auth_pw = secrets.ldap_readonly_password + auth_dn = secrets.get('ldap_readonly_auth_dn') + auth_pw = secrets.get('ldap_readonly_password') if os.path.exists('/var/run/slapd/ldapi'): ro_uri = 'ldapi://%2fvar%2frun%2fslapd%2fldapi/' elif os.path.exists('/var/run/ldapi'):