exclude oauth clients & app passwords from mailbox tfa
This commit is contained in:
		
							parent
							
								
									be08742653
								
							
						
					
					
						commit
						0342ae926c
					
				| @ -834,7 +834,7 @@ function check_login($user, $pass, $app_passwd_data = false, $skip_tfa = false) | ||||
|     if (verify_hash($row['password'], $pass)) { | ||||
|       // check for tfa authenticators
 | ||||
|       $authenticators = get_tfa($user); | ||||
|       if (isset($authenticators['additional']) && is_array($authenticators['additional']) && count($authenticators['additional']) > 0) { | ||||
|       if (isset($authenticators['additional']) && is_array($authenticators['additional']) && count($authenticators['additional']) > 0 && !$skip_tfa) { | ||||
|         // active tfa authenticators found, set pending user login
 | ||||
|         $_SESSION['pending_mailcow_cc_username'] = $user; | ||||
|         $_SESSION['pending_mailcow_cc_role'] = "admin"; | ||||
| @ -873,7 +873,7 @@ function check_login($user, $pass, $app_passwd_data = false, $skip_tfa = false) | ||||
|     if (verify_hash($row['password'], $pass) !== false) { | ||||
|       // check for tfa authenticators
 | ||||
|       $authenticators = get_tfa($user); | ||||
|       if (isset($authenticators['additional']) && is_array($authenticators['additional']) && count($authenticators['additional']) > 0) { | ||||
|       if (isset($authenticators['additional']) && is_array($authenticators['additional']) && count($authenticators['additional']) > 0 && !$skip_tfa) { | ||||
|         $_SESSION['pending_mailcow_cc_username'] = $user; | ||||
|         $_SESSION['pending_mailcow_cc_role'] = "domainadmin"; | ||||
|         $_SESSION['pending_tfa_methods'] = $authenticators['additional']; | ||||
| @ -954,25 +954,25 @@ function check_login($user, $pass, $app_passwd_data = false, $skip_tfa = false) | ||||
|           ); | ||||
|           return "pending"; | ||||
|         } | ||||
|       } else { | ||||
|         if ($app_passwd_data['eas'] === true || $app_passwd_data['dav'] === true) { | ||||
|           $service = ($app_passwd_data['eas'] === true) ? 'EAS' : 'DAV'; | ||||
|           $stmt = $pdo->prepare("REPLACE INTO sasl_log (`service`, `app_password`, `username`, `real_rip`) VALUES (:service, :app_id, :username, :remote_addr)"); | ||||
|           $stmt->execute(array( | ||||
|             ':service' => $service, | ||||
|             ':app_id' => $row['app_passwd_id'], | ||||
|             ':username' => $user, | ||||
|             ':remote_addr' => ($_SERVER['HTTP_X_REAL_IP'] ?? $_SERVER['REMOTE_ADDR']) | ||||
|           )); | ||||
|         } elseif (!$skip_tfa) { | ||||
|           // Reactivate TFA if it was set to "deactivate TFA for next login"
 | ||||
|           $stmt = $pdo->prepare("UPDATE `tfa` SET `active`='1' WHERE `username` = :user"); | ||||
|           $stmt->execute(array(':user' => $user)); | ||||
|         } | ||||
| 
 | ||||
|         unset($_SESSION['ldelay']); | ||||
|         return "user"; | ||||
|       } | ||||
| 
 | ||||
|       if ($app_passwd_data['eas'] === true || $app_passwd_data['dav'] === true) { | ||||
|         $service = ($app_passwd_data['eas'] === true) ? 'EAS' : 'DAV'; | ||||
|         $stmt = $pdo->prepare("REPLACE INTO sasl_log (`service`, `app_password`, `username`, `real_rip`) VALUES (:service, :app_id, :username, :remote_addr)"); | ||||
|         $stmt->execute(array( | ||||
|           ':service' => $service, | ||||
|           ':app_id' => $row['app_passwd_id'], | ||||
|           ':username' => $user, | ||||
|           ':remote_addr' => ($_SERVER['HTTP_X_REAL_IP'] ?? $_SERVER['REMOTE_ADDR']) | ||||
|         )); | ||||
|       } elseif (!$skip_tfa) { | ||||
|         // Reactivate TFA if it was set to "deactivate TFA for next login"
 | ||||
|         $stmt = $pdo->prepare("UPDATE `tfa` SET `active`='1' WHERE `username` = :user"); | ||||
|         $stmt->execute(array(':user' => $user)); | ||||
|       } | ||||
| 
 | ||||
|       unset($_SESSION['ldelay']); | ||||
|       return "user"; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 FreddleSpl0it
						FreddleSpl0it