mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	Synchronize SSH keys on login with LDAP + Fix SQLite deadlock on ldap ssh key deletion (#5557)
* Synchronize SSH keys on login with LDAP * BUG: Fix hang on sqlite during LDAP key deletion
This commit is contained in:
		@@ -247,10 +247,10 @@ func (ls *Source) SearchEntry(name, passwd string, directBind bool) *SearchResul
 | 
			
		||||
		return nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	log.Trace("Fetching attributes '%v', '%v', '%v', '%v' with filter %s and base %s", ls.AttributeUsername, ls.AttributeName, ls.AttributeSurname, ls.AttributeMail, userFilter, userDN)
 | 
			
		||||
	log.Trace("Fetching attributes '%v', '%v', '%v', '%v', '%v' with filter %s and base %s", ls.AttributeUsername, ls.AttributeName, ls.AttributeSurname, ls.AttributeMail, ls.AttributeSSHPublicKey, userFilter, userDN)
 | 
			
		||||
	search := ldap.NewSearchRequest(
 | 
			
		||||
		userDN, ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false, userFilter,
 | 
			
		||||
		[]string{ls.AttributeUsername, ls.AttributeName, ls.AttributeSurname, ls.AttributeMail},
 | 
			
		||||
		[]string{ls.AttributeUsername, ls.AttributeName, ls.AttributeSurname, ls.AttributeMail, ls.AttributeSSHPublicKey},
 | 
			
		||||
		nil)
 | 
			
		||||
 | 
			
		||||
	sr, err := l.Search(search)
 | 
			
		||||
@@ -271,6 +271,7 @@ func (ls *Source) SearchEntry(name, passwd string, directBind bool) *SearchResul
 | 
			
		||||
	firstname := sr.Entries[0].GetAttributeValue(ls.AttributeName)
 | 
			
		||||
	surname := sr.Entries[0].GetAttributeValue(ls.AttributeSurname)
 | 
			
		||||
	mail := sr.Entries[0].GetAttributeValue(ls.AttributeMail)
 | 
			
		||||
	sshPublicKey := sr.Entries[0].GetAttributeValues(ls.AttributeSSHPublicKey)
 | 
			
		||||
	isAdmin := checkAdmin(l, ls, userDN)
 | 
			
		||||
 | 
			
		||||
	if !directBind && ls.AttributesInBind {
 | 
			
		||||
@@ -282,11 +283,12 @@ func (ls *Source) SearchEntry(name, passwd string, directBind bool) *SearchResul
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return &SearchResult{
 | 
			
		||||
		Username: username,
 | 
			
		||||
		Name:     firstname,
 | 
			
		||||
		Surname:  surname,
 | 
			
		||||
		Mail:     mail,
 | 
			
		||||
		IsAdmin:  isAdmin,
 | 
			
		||||
		Username:     username,
 | 
			
		||||
		Name:         firstname,
 | 
			
		||||
		Surname:      surname,
 | 
			
		||||
		Mail:         mail,
 | 
			
		||||
		SSHPublicKey: sshPublicKey,
 | 
			
		||||
		IsAdmin:      isAdmin,
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user