Browse Source

work on #672

tags/v0.9.99
Unknwon 9 years ago
parent
commit
0b785ad967
2 changed files with 13 additions and 9 deletions
  1. 11
    8
      models/login.go
  2. 2
    1
      modules/auth/auth.go

+ 11
- 8
models/login.go View File



"github.com/gogits/gogs/modules/auth/ldap" "github.com/gogits/gogs/modules/auth/ldap"
"github.com/gogits/gogs/modules/log" "github.com/gogits/gogs/modules/log"
"github.com/gogits/gogs/modules/uuid"
) )


type LoginType int type LoginType int
// Query if name/passwd can login against the LDAP direcotry pool // Query if name/passwd can login against the LDAP direcotry pool
// Create a local user if success // Create a local user if success
// Return the same LoginUserPlain semantic // 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) { func LoginUserLdapSource(u *User, name, passwd string, sourceId int64, cfg *LDAPConfig, autoRegister bool) (*User, error) {
mail, logged := cfg.Ldapsource.SearchEntry(name, passwd) mail, logged := cfg.Ldapsource.SearchEntry(name, passwd)
if !logged { if !logged {
// user not in LDAP, do nothing
// User not in LDAP, do nothing
return nil, ErrUserNotExist return nil, ErrUserNotExist
} }
if !autoRegister { if !autoRegister {
return u, nil return u, nil
} }


// fake a local user creation
// Fallback.
if len(mail) == 0 {
mail = uuid.NewV4().String() + "@localhost"
}

u = &User{ u = &User{
LowerName: strings.ToLower(name),
Name: strings.ToLower(name),
Name: name,
LoginType: LDAP, LoginType: LDAP,
LoginSource: sourceId, LoginSource: sourceId,
LoginName: name, LoginName: name,
IsActive: true,
Passwd: passwd, Passwd: passwd,
Email: mail, Email: mail,
IsActive: true,
} }

err := CreateUser(u)
return u, err
return u, CreateUser(u)
} }


type loginAuth struct { type loginAuth struct {

+ 2
- 1
modules/auth/auth.go View File

"github.com/gogits/gogs/modules/base" "github.com/gogits/gogs/modules/base"
"github.com/gogits/gogs/modules/log" "github.com/gogits/gogs/modules/log"
"github.com/gogits/gogs/modules/setting" "github.com/gogits/gogs/modules/setting"
"github.com/gogits/gogs/modules/uuid"
) )


// SignedInId returns the id of signed in user. // SignedInId returns the id of signed in user.
if setting.Service.EnableReverseProxyAutoRegister { if setting.Service.EnableReverseProxyAutoRegister {
u := &models.User{ u := &models.User{
Name: webAuthUser, Name: webAuthUser,
Email: webAuthUser + "@gogs.io",
Email: uuid.NewV4().String() + "@localhost",
Passwd: webAuthUser, Passwd: webAuthUser,
IsActive: true, IsActive: true,
} }

Loading…
Cancel
Save