diff --git a/gestion/chgpass.py b/gestion/chgpass.py index a5638abe..596c148f 100755 --- a/gestion/chgpass.py +++ b/gestion/chgpass.py @@ -10,7 +10,9 @@ try : except : ldap_password = '' ldap_auth_dn = '' - + +uri = 'ldaps://zamok.crans.org' + def chgpass(dn) : cprint("""Le nouveau mot de passe doit comporter au minimum 6 caractères. Il ne doit pas être basé sur un mot du dictionnaire.""",'jaune') @@ -67,7 +69,7 @@ Il ne doit pas break # Changement mdp - if os.system("/usr/bin/ldappasswd -x -D '%s' -w '%s' '%s' -s '%s' > /dev/null" % (ldap_auth_dn, ldap_password, dn, 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('Erreur lors du changement de mot de passe','rouge') else : cprint('Changement effectué avec succès','vert') @@ -104,7 +106,10 @@ if __name__ == '__main__' : cprint('Utiliser passwd pour changer son propre mot de passe','rouge') sys.exit(2) - s = commands.getoutput("/usr/bin/ldapsearch -x -LLL '(&(objectClass=posixAccount)(uid=%s))' dn nom prenom droits" % login).strip() + if self_mode : + s = commands.getoutput('sudo -u respbats ldap_whoami') + else : + s = commands.getoutput("/usr/bin/ldapsearch -x -LLL '(&(objectClass=posixAccount)(uid=%s))' dn nom prenom droits" % login).strip() if not s : cprint('Login non trouvé dans la base LDAP','rouge') sys.exit(3) @@ -127,7 +132,7 @@ if __name__ == '__main__' : # Il faut vérifier l'ancien mot de passe ldap_auth_dn = dn ldap_password = getpass.getpass('Mot de passe actuel : ') - s = commands.getoutput("/usr/bin/ldapwhoami -x -D '%s' -w '%s'" % ( ldap_auth_dn, ldap_password ) ).strip() + s = commands.getoutput("/usr/bin/ldapwhoami -H '%s' -x -D '%s' -w '%s'" % ( uri, ldap_auth_dn, ldap_password ) ).strip() try : resultat = s.split(':')[1].strip() except :