diff --git a/gestion/chgpass.py b/gestion/chgpass.py index c07da0e8..317c415f 100644 --- a/gestion/chgpass.py +++ b/gestion/chgpass.py @@ -39,7 +39,19 @@ def decode64(chaine): except: return chaine.decode('utf8','ignore') -def chgpass(dn) : +def chgpass(dn, mdp = None) : + if mdp == None: + mdp = promptpass(dn) + + # Changement mdp + if os.system("/usr/bin/ldappasswd -H '%s' -x -D '%s' -w '%s' '%s' -s '%s' > /dev/null" % (uri, ldap_auth_dn, ldap_password, dn, mdp) ): + cprint(u'Erreur lors du changement de mot de passe', 'rouge') + syslog.syslog("LDAP password changed for dn=%s" % dn) + else : + cprint(u'Changement effectué avec succès', u'vert') + + +def promptpass(dn): cprint(u"""Le nouveau mot de passe doit comporter au minimum 6 caractères. Il ne doit pas être basé sur un mot du dictionnaire.""", 'jaune') print "Il est conseillé d'utiliser une combinaison de minuscules, majuscules,\nde chiffres et d'au moins un caractère spécial." @@ -106,23 +118,17 @@ Il ne doit pas être basé sur un mot du dictionnaire.""", 'jaune') if mdp != mdp1 : cprint(u'Les deux mots de passe entrés sont différents, réesayer', 'rouge') continue - break - # Changement mdp - if os.system("/usr/bin/ldappasswd -H '%s' -x -D '%s' -w '%s' '%s' -s '%s' > /dev/null" % (uri, ldap_auth_dn, ldap_password, dn, mdp) ): - cprint(u'Erreur lors du changement de mot de passe', 'rouge') - syslog.syslog("LDAP password changed for dn=%s" % dn) - else : - cprint(u'Changement effectué avec succès', u'vert') - except KeyboardInterrupt : cprint(u'\nAbandon', 'rouge') - pass + sys.exit(1) except EOFError : # Un Ctrl-D cprint(u'\nAbandon', 'rouge') - pass + sys.exit(1) + + return mdp if __name__ == '__main__' : sys.stdout.write('\r \r') # Pour esthétique lors de l'utilisation par sudo