diff --git a/object/check.go b/object/check.go index 51c4c1c0..aeffbf51 100644 --- a/object/check.go +++ b/object/check.go @@ -211,7 +211,7 @@ func checkLdapUserPassword(user *User, password string, lang string) string { } searchReq := goldap.NewSearchRequest(ldapServer.BaseDn, goldap.ScopeWholeSubtree, goldap.NeverDerefAliases, - 0, 0, false, ldapServer.buildFilterString(user), []string{}, nil) + 0, 0, false, ldapServer.buildAuthFilterString(user), []string{}, nil) searchResult, err := conn.Conn.Search(searchReq) if err != nil { diff --git a/object/ldap_conn.go b/object/ldap_conn.go index fce352aa..055812d9 100644 --- a/object/ldap_conn.go +++ b/object/ldap_conn.go @@ -367,7 +367,7 @@ func (ldapUser *LdapUser) GetLdapUuid() string { return ldapUser.Cn } -func (ldap *Ldap) buildFilterString(user *User) string { +func (ldap *Ldap) buildAuthFilterString(user *User) string { if len(ldap.FilterFields) == 0 { return fmt.Sprintf("(&%s(uid=%s))", ldap.Filter, user.Name) } @@ -385,6 +385,8 @@ func (user *User) getFieldFromLdapAttribute(attribute string) string { switch attribute { case "uid": return user.Name + case "sAMAccountName": + return user.Name case "mail": return user.Email case "mobile": diff --git a/web/src/LdapEditPage.js b/web/src/LdapEditPage.js index 19086d5d..26291163 100644 --- a/web/src/LdapEditPage.js +++ b/web/src/LdapEditPage.js @@ -185,6 +185,7 @@ class LdapEditPage extends React.Component { {value: "uid", label: "uid"}, {value: "mail", label: "Email"}, {value: "mobile", label: "mobile"}, + {value: "sAMAccountName", label: "sAMAccountName"}, ].map((item) => Setting.getOption(item.label, item.value))} onChange={value => { this.updateLdapField("filterFields", value); }} />