| 1234567891011121314151617181920212223242526272829303132333435363738 | // 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 modelsimport (	"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 semanticfunc 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}
 |