[chgpass] ldap_crans dépend aussi de chgpass, et cracklib n'est pas partout.
* On fait donc un import plus lazy et sécurisé
This commit is contained in:
parent
1dc52d6fa0
commit
47166fc404
2 changed files with 20 additions and 13 deletions
|
@ -19,7 +19,6 @@ import gestion.config as config
|
||||||
import config.password
|
import config.password
|
||||||
import getpass
|
import getpass
|
||||||
import argparse
|
import argparse
|
||||||
import cracklib
|
|
||||||
import gestion.affich_tools as affich_tools
|
import gestion.affich_tools as affich_tools
|
||||||
import lc_ldap.shortcuts
|
import lc_ldap.shortcuts
|
||||||
import lc_ldap.attributs
|
import lc_ldap.attributs
|
||||||
|
@ -102,17 +101,25 @@ def check_password(password, no_cracklib=False, dialog=False):
|
||||||
problem = True
|
problem = True
|
||||||
|
|
||||||
if not problem:
|
if not problem:
|
||||||
|
try:
|
||||||
|
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:
|
try:
|
||||||
# Le mot vient-il du dico (à améliorer, on voudrait pouvoir préciser
|
# Le mot vient-il du dico (à améliorer, on voudrait pouvoir préciser
|
||||||
# la rigueur du test) ?
|
# la rigueur du test) ?
|
||||||
password = cracklib.VeryFascistCheck(password)
|
password = cracklib.VeryFascistCheck(password)
|
||||||
return True, ""
|
return True, msg
|
||||||
except ValueError as e:
|
except ValueError as e:
|
||||||
if not dialog:
|
if not dialog:
|
||||||
affich_tools.cprint(str(e).decode(), "rouge")
|
affich_tools.cprint(str(e).decode(), "rouge")
|
||||||
else:
|
else:
|
||||||
msg += affich_tools.coul(str(e).decode(), "rouge", dialog=dialog)
|
msg += affich_tools.coul(str(e).decode(), "rouge", dialog=dialog)
|
||||||
return False, msg
|
return False, msg
|
||||||
|
else:
|
||||||
|
return True, msg
|
||||||
else:
|
else:
|
||||||
return False, msg
|
return False, msg
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ import netaddr
|
||||||
import time
|
import time
|
||||||
import annuaires_pg as annuaires
|
import annuaires_pg as annuaires
|
||||||
import config, config.impression, iptools, ip6tools, cPickle, config_mail
|
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 affich_tools import coul, prompt, cprint
|
||||||
from email_tools import send_email
|
from email_tools import send_email
|
||||||
from syslog import openlog, closelog, syslog
|
from syslog import openlog, closelog, syslog
|
||||||
|
@ -1951,7 +1951,7 @@ class BaseProprietaire(BaseClasseCrans):
|
||||||
args+= self._data['uid'][0]
|
args+= self._data['uid'][0]
|
||||||
r = prompt(u"Attribuer tout de suite un mot de passe ? [O/N]", "O")
|
r = prompt(u"Attribuer tout de suite un mot de passe ? [O/N]", "O")
|
||||||
if r == 'O' or r == 'o':
|
if r == 'O' or r == 'o':
|
||||||
chgpass(self.dn)
|
change_password(self.dn)
|
||||||
else:
|
else:
|
||||||
ret += coul(u' Il faudra penser à attribuer un mot de passe\n', 'jaune')
|
ret += coul(u' Il faudra penser à attribuer un mot de passe\n', 'jaune')
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue