mirror of https://github.com/h44z/wg-portal.git
				
				
				
			
		
			
				
	
	
		
			38 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
package ldap
 | 
						|
 | 
						|
import (
 | 
						|
	gldap "github.com/go-ldap/ldap/v3"
 | 
						|
)
 | 
						|
 | 
						|
type Type string
 | 
						|
 | 
						|
const (
 | 
						|
	TypeActiveDirectory Type = "AD"
 | 
						|
	TypeOpenLDAP        Type = "OpenLDAP"
 | 
						|
)
 | 
						|
 | 
						|
type Config struct {
 | 
						|
	URL            string `yaml:"url" envconfig:"LDAP_URL"`
 | 
						|
	StartTLS       bool   `yaml:"startTLS" envconfig:"LDAP_STARTTLS"`
 | 
						|
	CertValidation bool   `yaml:"certcheck" envconfig:"LDAP_CERT_VALIDATION"`
 | 
						|
	BaseDN         string `yaml:"dn" envconfig:"LDAP_BASEDN"`
 | 
						|
	BindUser       string `yaml:"user" envconfig:"LDAP_USER"`
 | 
						|
	BindPass       string `yaml:"pass" envconfig:"LDAP_PASSWORD"`
 | 
						|
 | 
						|
	EmailAttribute       string `yaml:"attrEmail" envconfig:"LDAP_ATTR_EMAIL"`
 | 
						|
	FirstNameAttribute   string `yaml:"attrFirstname" envconfig:"LDAP_ATTR_FIRSTNAME"`
 | 
						|
	LastNameAttribute    string `yaml:"attrLastname" envconfig:"LDAP_ATTR_LASTNAME"`
 | 
						|
	PhoneAttribute       string `yaml:"attrPhone" envconfig:"LDAP_ATTR_PHONE"`
 | 
						|
	GroupMemberAttribute string `yaml:"attrGroups" envconfig:"LDAP_ATTR_GROUPS"`
 | 
						|
 | 
						|
	LoginFilter     string    `yaml:"loginFilter" envconfig:"LDAP_LOGIN_FILTER"` // {{login_identifier}} gets replaced with the login email address
 | 
						|
	SyncFilter      string    `yaml:"syncFilter" envconfig:"LDAP_SYNC_FILTER"`
 | 
						|
	SyncGroupFilter string    `yaml:"syncGroupFilter" envconfig:"LDAP_SYNC_GROUP_FILTER"`
 | 
						|
	AdminLdapGroup  string    `yaml:"adminGroup" envconfig:"LDAP_ADMIN_GROUP"` // Members of this group receive admin rights in WG-Portal
 | 
						|
	AdminLdapGroup_ *gldap.DN `yaml:"-"`
 | 
						|
	EveryoneAdmin   bool      `yaml:"everyoneAdmin" envconfig:"LDAP_EVERYONE_ADMIN"`
 | 
						|
	LdapCertConn    bool      `yaml:"ldapCertConn" envconfig:"LDAP_CERT_CONN"`
 | 
						|
	LdapTlsCert     string    `yaml:"ldapTlsCert" envconfig:"LDAPTLS_CERT"`
 | 
						|
	LdapTlsKey      string    `yaml:"ldapTlsKey" envconfig:"LDAPTLS_KEY"`
 | 
						|
}
 |