diff options
Diffstat (limited to 'ldap.go')
-rw-r--r-- | ldap.go | 20 |
1 files changed, 19 insertions, 1 deletions
@@ -224,4 +224,22 @@ func calculateFingerprint(ssh_key string) string { //return fmt.Sprintf("SHA256:%x", fingerprint) } -//// set_nordunet_ldap_pw_sasl used on sso pw set if change pw fail? +func (i *LdapInfo) SetSASLPassword(username string) error { + l, err := i.LdapConnectBind() + if err != nil { + return err + } + defer l.Close() + + sasl := fmt.Sprintf("{SASL}%s@%s", username, pwman.Krb5Conf.Realm) + + change := ldap.NewModifyRequest(i.UserDN(username)) + change.Replace("userPassword", []string{sasl}) + + err = l.Modify(change) + if err != nil { + return err + } + log.Println("[INFO] changed ldap password to SASL for", username) + return nil +} |