85 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package ldap
 | 
						|
 | 
						|
import (
 | 
						|
	"crypto/tls"
 | 
						|
	"sync"
 | 
						|
 | 
						|
	"github.com/go-openapi/strfmt"
 | 
						|
	log "github.com/sirupsen/logrus"
 | 
						|
	"goauthentik.io/api"
 | 
						|
	"goauthentik.io/internal/outpost/ldap/bind"
 | 
						|
	"goauthentik.io/internal/outpost/ldap/flags"
 | 
						|
	"goauthentik.io/internal/outpost/ldap/search"
 | 
						|
)
 | 
						|
 | 
						|
type ProviderInstance struct {
 | 
						|
	BaseDN         string
 | 
						|
	UserDN         string
 | 
						|
	VirtualGroupDN string
 | 
						|
	GroupDN        string
 | 
						|
 | 
						|
	searcher search.Searcher
 | 
						|
	binder   bind.Binder
 | 
						|
 | 
						|
	appSlug  string
 | 
						|
	flowSlug string
 | 
						|
	s        *LDAPServer
 | 
						|
	log      *log.Entry
 | 
						|
 | 
						|
	tlsServerName       *string
 | 
						|
	cert                *tls.Certificate
 | 
						|
	outpostName         string
 | 
						|
	outpostPk           int32
 | 
						|
	searchAllowedGroups []*strfmt.UUID
 | 
						|
	boundUsersMutex     sync.RWMutex
 | 
						|
	boundUsers          map[string]flags.UserFlags
 | 
						|
 | 
						|
	uidStartNumber int32
 | 
						|
	gidStartNumber int32
 | 
						|
}
 | 
						|
 | 
						|
func (pi *ProviderInstance) GetAPIClient() *api.APIClient {
 | 
						|
	return pi.s.ac.Client
 | 
						|
}
 | 
						|
 | 
						|
func (pi *ProviderInstance) GetBaseDN() string {
 | 
						|
	return pi.BaseDN
 | 
						|
}
 | 
						|
 | 
						|
func (pi *ProviderInstance) GetBaseGroupDN() string {
 | 
						|
	return pi.GroupDN
 | 
						|
}
 | 
						|
 | 
						|
func (pi *ProviderInstance) GetBaseUserDN() string {
 | 
						|
	return pi.UserDN
 | 
						|
}
 | 
						|
 | 
						|
func (pi *ProviderInstance) GetOutpostName() string {
 | 
						|
	return pi.outpostName
 | 
						|
}
 | 
						|
 | 
						|
func (pi *ProviderInstance) GetFlags(dn string) (flags.UserFlags, bool) {
 | 
						|
	pi.boundUsersMutex.RLock()
 | 
						|
	flags, ok := pi.boundUsers[dn]
 | 
						|
	pi.boundUsersMutex.RUnlock()
 | 
						|
	return flags, ok
 | 
						|
}
 | 
						|
 | 
						|
func (pi *ProviderInstance) SetFlags(dn string, flag flags.UserFlags) {
 | 
						|
	pi.boundUsersMutex.Lock()
 | 
						|
	pi.boundUsers[dn] = flag
 | 
						|
	pi.boundUsersMutex.Unlock()
 | 
						|
}
 | 
						|
 | 
						|
func (pi *ProviderInstance) GetAppSlug() string {
 | 
						|
	return pi.appSlug
 | 
						|
}
 | 
						|
 | 
						|
func (pi *ProviderInstance) GetFlowSlug() string {
 | 
						|
	return pi.flowSlug
 | 
						|
}
 | 
						|
 | 
						|
func (pi *ProviderInstance) GetSearchAllowedGroups() []*strfmt.UUID {
 | 
						|
	return pi.searchAllowedGroups
 | 
						|
}
 |