Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def changePassword(userEmail, oldPassword, newPassword):
- try:
- ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)
- ldap_client = ldap.initialize("ldap://127.0.01.1:389")
- ldap_client.set_option(ldap.OPT_REFERRALS, 0)
- ldap_client.set_option(ldap.OPT_PROTOCOL_VERSION, 3)
- ldap_client.set_option(ldap.OPT_X_TLS,ldap.OPT_X_TLS_DEMAND)
- ldap_client.set_option( ldap.OPT_X_TLS_DEMAND, True )
- ldap_client.set_option( ldap.OPT_DEBUG_LEVEL, 255 )
- ldap_client.simple_bind_s(ADMIN_EMAIL, ADMIN_PASSWORD)
- # Set AD password
- #unicode_pass = unicode('\"' + newPassword + '\"', "iso-8859-1")
- unicode_pass = newPassword
- password_value = unicode_pass.encode("utf-16-le")
- add_pass = [(ldap.MOD_REPLACE, 'unicodePwd', [password_value]),( ldap.MOD_REPLACE, 'unicodePwd', [password_value])]
- # Replace password
- try:
- user_dn = 'CN=%s,DC=mydomain,DC=com' % username
- ldap_client.modify_s(user_dn, add_pass)
- print "Active Directory password for", username, \
- "was set successfully!"
- except ldap.LDAPError, e:
- sys.stderr.write('Error setting AD password for: ' + username + '\n')
- sys.stderr.write('Message: ' + str(e) + '\n')
- ldap_client.unbind_s()
- return 'SOME_PROBLEM'
- ldap_client.unbind_s()
- return 'AUTHENTICATED'
- except ldap.INVALID_CREDENTIALS:
- ldap_client.unbind()
- return 'INVALID_CREDENTIALS'
- except ldap.SERVER_DOWN:
- return 'SERVER_UNAVAILABLE'
Add Comment
Please, Sign In to add comment