diff --git a/gestion/chgpass.py b/gestion/chgpass.py index e4da6ef2..86bbbf96 100755 --- a/gestion/chgpass.py +++ b/gestion/chgpass.py @@ -19,7 +19,6 @@ import gestion.config as config import config.password import getpass import argparse -import cracklib import gestion.affich_tools as affich_tools import lc_ldap.shortcuts import lc_ldap.attributs @@ -103,16 +102,24 @@ def check_password(password, no_cracklib=False, dialog=False): if not problem: try: - # Le mot vient-il du dico (à améliorer, on voudrait pouvoir préciser - # la rigueur du test) ? - password = cracklib.VeryFascistCheck(password) - return True, "" - except ValueError as e: - if not dialog: - affich_tools.cprint(str(e).decode(), "rouge") - else: - msg += affich_tools.coul(str(e).decode(), "rouge", dialog=dialog) - return False, msg + import cracklib + except ImportError: + affichtools.cprint("Attention : la librairie python cracklib n'est pas accessible sur ce serveur.", "rouge") + + if sys.modules.get('cracklib', ''): + try: + # Le mot vient-il du dico (à améliorer, on voudrait pouvoir préciser + # la rigueur du test) ? + password = cracklib.VeryFascistCheck(password) + return True, msg + except ValueError as e: + if not dialog: + affich_tools.cprint(str(e).decode(), "rouge") + else: + msg += affich_tools.coul(str(e).decode(), "rouge", dialog=dialog) + return False, msg + else: + return True, msg else: return False, msg diff --git a/gestion/ldap_crans.py b/gestion/ldap_crans.py index c036947b..c25573e4 100755 --- a/gestion/ldap_crans.py +++ b/gestion/ldap_crans.py @@ -19,7 +19,7 @@ import netaddr import time import annuaires_pg as annuaires import config, config.impression, iptools, ip6tools, cPickle, config_mail -from chgpass import chgpass +from chgpass import change_password from affich_tools import coul, prompt, cprint from email_tools import send_email from syslog import openlog, closelog, syslog @@ -1951,7 +1951,7 @@ class BaseProprietaire(BaseClasseCrans): args+= self._data['uid'][0] r = prompt(u"Attribuer tout de suite un mot de passe ? [O/N]", "O") if r == 'O' or r == 'o': - chgpass(self.dn) + change_password(self.dn) else: ret += coul(u' Il faudra penser à attribuer un mot de passe\n', 'jaune')