|  | @@ -23,13 +23,14 @@ import (
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  type LoginType int
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +// Note: new type must be added at the end of list to maintain compatibility.
 | 
	
		
			
				|  |  |  const (
 | 
	
		
			
				|  |  |  	NOTYPE LoginType = iota
 | 
	
		
			
				|  |  |  	PLAIN
 | 
	
		
			
				|  |  |  	LDAP
 | 
	
		
			
				|  |  | -	DLDAP
 | 
	
		
			
				|  |  |  	SMTP
 | 
	
		
			
				|  |  |  	PAM
 | 
	
		
			
				|  |  | +	DLDAP
 | 
	
		
			
				|  |  |  )
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  var (
 | 
	
	
		
			
				|  | @@ -107,9 +108,7 @@ func (source *LoginSource) BeforeSet(colName string, val xorm.Cell) {
 | 
	
		
			
				|  |  |  	switch colName {
 | 
	
		
			
				|  |  |  	case "type":
 | 
	
		
			
				|  |  |  		switch LoginType((*val).(int64)) {
 | 
	
		
			
				|  |  | -		case LDAP:
 | 
	
		
			
				|  |  | -			fallthrough
 | 
	
		
			
				|  |  | -		case DLDAP:
 | 
	
		
			
				|  |  | +		case LDAP, DLDAP:
 | 
	
		
			
				|  |  |  			source.Cfg = new(LDAPConfig)
 | 
	
		
			
				|  |  |  		case SMTP:
 | 
	
		
			
				|  |  |  			source.Cfg = new(SMTPConfig)
 | 
	
	
		
			
				|  | @@ -233,9 +232,7 @@ func ExternalUserLogin(u *User, name, passwd string, source *LoginSource, autoRe
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	switch source.Type {
 | 
	
		
			
				|  |  | -	case LDAP:
 | 
	
		
			
				|  |  | -		fallthrough
 | 
	
		
			
				|  |  | -	case DLDAP:
 | 
	
		
			
				|  |  | +	case LDAP, DLDAP:
 | 
	
		
			
				|  |  |  		return LoginUserLdapSource(u, name, passwd, source, autoRegister)
 | 
	
		
			
				|  |  |  	case SMTP:
 | 
	
		
			
				|  |  |  		return LoginUserSMTPSource(u, name, passwd, source.ID, source.Cfg.(*SMTPConfig), autoRegister)
 |