| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -90,17 +90,22 @@ fn _password_login(data: ConnectData, conn: DbConn, ip: ClientIp) -> JsonResult | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    if CONFIG._enable_ldap() { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        // Extract ldap username from email
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        let email_parts: Vec<_> = username.split("@").collect(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        let ldap_username = email_parts[0]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        let password = data.password.as_ref().unwrap(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        let ldap = LdapConn::new(CONFIG.ldap_host().as_str())?; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        let bind = ldap.simple_bind(ldap_username, password); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if bind.is_err() { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            err!( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                "Username or password is incorrect. Try again", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                format!("IP: {}. Username: {}.", ip.ip, ldap_username) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            ); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        match LdapConn::new(CONFIG.ldap_host().as_str()) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            Ok(ldap) => { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                let bind = ldap.simple_bind(ldap_username, password); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if bind.is_err() { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    err!( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        "LDAP Username or password is incorrect. Try again", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        format!("IP: {}. Username: {}.", ip.ip, ldap_username) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    ); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            Err(_) => err!("Can't connect to LDAP, check LDAP host"), | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        // Check password
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |