mirror of
https://gitcode.com/gitea/gitea.git
synced 2025-06-08 05:18:19 +08:00
conf
doc
dockerfiles
models
access.go
action.go
git_diff.go
issue.go
ldap.go
models.go
models_sqlite.go
models_test.go
oauth2.go
publickey.go
release.go
repo.go
update.go
user.go
modules
public
routers
templates
tests
.fswatch.json
.gitignore
.gobuild.yml
.gopmfile
CONTRIBUTING.md
LICENSE
README.md
README_ZH.md
bee.json
gogs.go
serve.go
start.bat
start.sh
update.go
web.go
wercker.yml
39 lines
1012 B
Go
39 lines
1012 B
Go
// Copyright github.com/juju2013. All rights reserved.
|
|
// Use of this source code is governed by a MIT-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package models
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/gogits/gogs/modules/auth/ldap"
|
|
"github.com/gogits/gogs/modules/log"
|
|
)
|
|
|
|
// Query if name/passwd can login against the LDAP direcotry pool
|
|
// Create a local user if success
|
|
// Return the same LoginUserPlain semantic
|
|
func LoginUserLdap(name, passwd string) (*User, error) {
|
|
mail, logged := ldap.LoginUser(name, passwd)
|
|
if !logged {
|
|
// user not in LDAP, do nothing
|
|
return nil, ErrUserNotExist
|
|
}
|
|
// fake a local user creation
|
|
user := User{
|
|
LowerName: strings.ToLower(name),
|
|
Name: strings.ToLower(name),
|
|
LoginType: 389,
|
|
IsActive: true,
|
|
Passwd: passwd,
|
|
Email: mail}
|
|
_, err := RegisterUser(&user)
|
|
if err != nil {
|
|
log.Debug("LDAP local user %s fond (%s) ", name, err)
|
|
}
|
|
// simulate local user login
|
|
localUser, err2 := GetUserByName(user.Name)
|
|
return localUser, err2
|
|
}
|