diff --git a/model-user.go b/model-user.go index b8ac3e1..02ae95f 100644 --- a/model-user.go +++ b/model-user.go @@ -92,6 +92,12 @@ func modify(user User, config *ConfigFile, ldapConn *ldap.Conn) error { return nil } +func passwd(user User, config *ConfigFile, ldapConn *ldap.Conn) error { + passwordModifyRequest := ldap.NewPasswordModifyRequest(user.DN, "", user.Password) + _, err := ldapConn.PasswordModify(passwordModifyRequest) + return err +} + func replaceIfContent(modifReq *ldap.ModifyRequest, key string, value string) error { if value != "" { modifReq.Replace(key, []string{value}) diff --git a/profile.go b/profile.go index 050eed0..42a07bf 100644 --- a/profile.go +++ b/profile.go @@ -3,8 +3,6 @@ package main import ( "net/http" "strings" - - "github.com/go-ldap/ldap/v3" ) type ProfileTplData struct { @@ -141,8 +139,10 @@ func handlePasswd(w http.ResponseWriter, r *http.Request) { } else if password2 != password { data.NoMatchError = true } else { - passwordModifyRequest := ldap.NewPasswordModifyRequest(login.Info.DN, "", password) - _, err := login.conn.PasswordModify(passwordModifyRequest) + err := passwd(User{ + DN: login.Info.DN, + Password: password, + }, config, login.conn) if err != nil { data.ErrorMessage = err.Error() } else {