Commit 47166fc4 authored by Pierre-Elliott Bécue's avatar Pierre-Elliott Bécue

[chgpass] ldap_crans dépend aussi de chgpass, et cracklib n'est pas partout.

 * On fait donc un import plus lazy et sécurisé
parent 1dc52d6f
......@@ -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
......
......@@ -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')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment