|
|
|
@ -11,10 +11,10 @@ import (
|
|
|
|
|
"fmt"
|
|
|
|
|
"net/smtp"
|
|
|
|
|
"net/textproto"
|
|
|
|
|
"regexp"
|
|
|
|
|
"strings"
|
|
|
|
|
|
|
|
|
|
"github.com/Unknwon/com"
|
|
|
|
|
"github.com/go-macaron/binding"
|
|
|
|
|
"github.com/go-xorm/core"
|
|
|
|
|
"github.com/go-xorm/xorm"
|
|
|
|
|
|
|
|
|
@ -384,6 +384,10 @@ func composeFullName(firstname, surname, username string) string {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var (
|
|
|
|
|
alphaDashDotPattern = regexp.MustCompile("[^\\w-\\.]")
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// LoginViaLDAP queries if login/password is valid against the LDAP directory pool,
|
|
|
|
|
// and create a local user if success when enabled.
|
|
|
|
|
func LoginViaLDAP(user *User, login, password string, source *LoginSource, autoRegister bool) (*User, error) {
|
|
|
|
@ -408,7 +412,7 @@ func LoginViaLDAP(user *User, login, password string, source *LoginSource, autoR
|
|
|
|
|
sr.Username = login
|
|
|
|
|
}
|
|
|
|
|
// Validate username make sure it satisfies requirement.
|
|
|
|
|
if binding.AlphaDashDotPattern.MatchString(sr.Username) {
|
|
|
|
|
if alphaDashDotPattern.MatchString(sr.Username) {
|
|
|
|
|
return nil, fmt.Errorf("Invalid pattern for attribute 'username' [%s]: must be valid alpha or numeric or dash(-_) or dot characters", sr.Username)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|