From 0b785ad96785f62166eb88e7f1415c918e102e71 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Fri, 5 Dec 2014 18:08:09 -0500 Subject: [PATCH] work on #672 --- models/login.go | 19 +++++++++++-------- modules/auth/auth.go | 3 ++- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/models/login.go b/models/login.go index 87dbbacc76da..3986353192bf 100644 --- a/models/login.go +++ b/models/login.go @@ -18,6 +18,7 @@ import ( "github.com/gogits/gogs/modules/auth/ldap" "github.com/gogits/gogs/modules/log" + "github.com/gogits/gogs/modules/uuid" ) type LoginType int @@ -228,30 +229,32 @@ func UserSignIn(uname, passwd string) (*User, error) { // Query if name/passwd can login against the LDAP direcotry pool // Create a local user if success // Return the same LoginUserPlain semantic +// FIXME: https://github.com/gogits/gogs/issues/672 func LoginUserLdapSource(u *User, name, passwd string, sourceId int64, cfg *LDAPConfig, autoRegister bool) (*User, error) { mail, logged := cfg.Ldapsource.SearchEntry(name, passwd) if !logged { - // user not in LDAP, do nothing + // User not in LDAP, do nothing return nil, ErrUserNotExist } if !autoRegister { return u, nil } - // fake a local user creation + // Fallback. + if len(mail) == 0 { + mail = uuid.NewV4().String() + "@localhost" + } + u = &User{ - LowerName: strings.ToLower(name), - Name: strings.ToLower(name), + Name: name, LoginType: LDAP, LoginSource: sourceId, LoginName: name, - IsActive: true, Passwd: passwd, Email: mail, + IsActive: true, } - - err := CreateUser(u) - return u, err + return u, CreateUser(u) } type loginAuth struct { diff --git a/modules/auth/auth.go b/modules/auth/auth.go index 5b7276b48a6f..450cdb37e916 100644 --- a/modules/auth/auth.go +++ b/modules/auth/auth.go @@ -17,6 +17,7 @@ import ( "github.com/gogits/gogs/modules/base" "github.com/gogits/gogs/modules/log" "github.com/gogits/gogs/modules/setting" + "github.com/gogits/gogs/modules/uuid" ) // SignedInId returns the id of signed in user. @@ -83,7 +84,7 @@ func SignedInUser(req *http.Request, sess session.Store) (*models.User, bool) { if setting.Service.EnableReverseProxyAutoRegister { u := &models.User{ Name: webAuthUser, - Email: webAuthUser + "@gogs.io", + Email: uuid.NewV4().String() + "@localhost", Passwd: webAuthUser, IsActive: true, }