|  | @@ -178,6 +178,36 @@ func newLogService() {
 | 
	
		
			
				|  |  |  	log.Info("Log Mode: %s(%s)", strings.Title(LogMode), levelName)
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +func newLdapService() {
 | 
	
		
			
				|  |  | +	LdapAuth = Cfg.MustBool("security", "LDAP_AUTH", false)
 | 
	
		
			
				|  |  | +	if !LdapAuth {
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	nbsrc := 0
 | 
	
		
			
				|  |  | +	for _, v := range Cfg.GetSectionList() {
 | 
	
		
			
				|  |  | +		if matched, _ := regexp.MatchString("(?i)^LDAPSOURCE.*", v); matched {
 | 
	
		
			
				|  |  | +			ldapname := Cfg.MustValue(v, "name", v)
 | 
	
		
			
				|  |  | +			ldaphost := Cfg.MustValue(v, "host")
 | 
	
		
			
				|  |  | +			ldapport := Cfg.MustInt(v, "port", 389)
 | 
	
		
			
				|  |  | +			ldapbasedn := Cfg.MustValue(v, "basedn", "dc=*,dc=*")
 | 
	
		
			
				|  |  | +			ldapattribute := Cfg.MustValue(v, "attribute", "mail")
 | 
	
		
			
				|  |  | +			ldapfilter := Cfg.MustValue(v, "filter", "(*)")
 | 
	
		
			
				|  |  | +			ldapmsadsaformat := Cfg.MustValue(v, "MSADSAFORMAT", "%s")
 | 
	
		
			
				|  |  | +			ldap.AddSource(ldapname, ldaphost, ldapport, ldapbasedn, ldapattribute, ldapfilter, ldapmsadsaformat)
 | 
	
		
			
				|  |  | +			nbsrc++
 | 
	
		
			
				|  |  | +			log.Debug("%s added as LDAP source", ldapname)
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	if nbsrc == 0 {
 | 
	
		
			
				|  |  | +		log.Warn("No valide LDAP found, LDAP Authentication NOT enabled")
 | 
	
		
			
				|  |  | +		LdapAuth = false
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	log.Info("LDAP Authentication Enabled")
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  func newCacheService() {
 | 
	
		
			
				|  |  |  	CacheAdapter = Cfg.MustValue("cache", "ADAPTER", "memory")
 | 
	
		
			
				|  |  |  	if EnableRedis {
 | 
	
	
		
			
				|  | @@ -313,33 +343,6 @@ func NewConfigContext() {
 | 
	
		
			
				|  |  |  	CookieUserName = Cfg.MustValue("security", "COOKIE_USERNAME")
 | 
	
		
			
				|  |  |  	CookieRememberName = Cfg.MustValue("security", "COOKIE_REMEMBER_NAME")
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	// load LDAP authentication configuration if present
 | 
	
		
			
				|  |  | -	LdapAuth = Cfg.MustBool("security", "LDAP_AUTH", false)
 | 
	
		
			
				|  |  | -	if LdapAuth {
 | 
	
		
			
				|  |  | -		qlog.Debug("LDAP AUTHENTICATION activated")
 | 
	
		
			
				|  |  | -		nbsrc := 0
 | 
	
		
			
				|  |  | -		for _, v := range Cfg.GetSectionList() {
 | 
	
		
			
				|  |  | -			if matched, _ := regexp.MatchString("(?i)^LDAPSOURCE.*", v); matched {
 | 
	
		
			
				|  |  | -				ldapname := Cfg.MustValue(v, "name", v)
 | 
	
		
			
				|  |  | -				ldaphost := Cfg.MustValue(v, "host")
 | 
	
		
			
				|  |  | -				ldapport := Cfg.MustInt(v, "port", 389)
 | 
	
		
			
				|  |  | -				ldapbasedn := Cfg.MustValue(v, "basedn", "dc=*,dc=*")
 | 
	
		
			
				|  |  | -				ldapattribute := Cfg.MustValue(v, "attribute", "mail")
 | 
	
		
			
				|  |  | -				ldapfilter := Cfg.MustValue(v, "filter", "(*)")
 | 
	
		
			
				|  |  | -				ldapmsadsaformat := Cfg.MustValue(v, "MSADSAFORMAT", "%s")
 | 
	
		
			
				|  |  | -				ldap.AddSource(ldapname, ldaphost, ldapport, ldapbasedn, ldapattribute, ldapfilter, ldapmsadsaformat)
 | 
	
		
			
				|  |  | -				nbsrc += 1
 | 
	
		
			
				|  |  | -				qlog.Debug("%s added as LDAP source", ldapname)
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		if nbsrc == 0 {
 | 
	
		
			
				|  |  | -			qlog.Debug("No valide LDAP found, LDAP AUTHENTICATION NOT activated")
 | 
	
		
			
				|  |  | -			LdapAuth = false
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -	} else {
 | 
	
		
			
				|  |  | -		qlog.Debug("LDAP AUTHENTICATION NOT activated")
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  	PictureService = Cfg.MustValue("picture", "SERVICE")
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	// Determine and create root git reposiroty path.
 | 
	
	
		
			
				|  | @@ -357,6 +360,7 @@ func NewConfigContext() {
 | 
	
		
			
				|  |  |  func NewBaseServices() {
 | 
	
		
			
				|  |  |  	newService()
 | 
	
		
			
				|  |  |  	newLogService()
 | 
	
		
			
				|  |  | +	newLdapService()
 | 
	
		
			
				|  |  |  	newCacheService()
 | 
	
		
			
				|  |  |  	newSessionService()
 | 
	
		
			
				|  |  |  	newMailService()
 |