 <?php 

	//-------------------------------------------------------------------------
	$code_erreur = 0 ;
	$errorMessage = '';
	
	$Flag_debug_login = 1;
	$Flag_debug_login = 0;

	//-------------------------------------------------------------------------
	include("../M0/get_parameters.php") ;

	//-------------------------------------------------------------------------
	// initialisation des variables
	//-------------------------------------------------------------------------
	$Flag_found_super_user	= false ;
	$found_super_user		= false ;
	$found_normal_user		= false ;

	//-------------------------------------------------------------------------
	if ( empty( $_POST['LOST_PASSWORD_USER'] ) ) {
		
		$code_erreur = 1 ;

		$p_identifiant	= "???" ;

		session_start();
		$_SESSION['lost_password_login']		= "???" ;
		$errorMessage = "le champ « identifiant » est vide !!!";
		
	}
	
	if ( $code_erreur == 0 ) {
		
		$p_identifiant	= $_POST['LOST_PASSWORD_USER'] ;

		session_start();
		$_SESSION['lost_password_login'] = $p_identifiant ;

		if ( ! filter_var($p_identifiant, FILTER_VALIDATE_EMAIL)) {
			
			$code_erreur = 2 ;
			$errorMessage = $p_identifiant . " n'est pas une adresse mail valide !!!";
			
		}
		
	}

	//-------------------------------------------------------------------------
	echo( $code_erreur ); echo("#50</br>" ) ;
	
	if ( $code_erreur == 0 ) {
		
		//-------------------------------------------------------------------------
		// recensement de tous les sites
		//-------------------------------------------------------------------------
		include ("../M0/get_AQCM05_sites.php");
		
		$all_sites_id_strings 				= $sites_from_AQCM05_SITES_LIST ;
		$all_sites_names_strings			= $sites_from_AQCM05_SITES_NAMES ;
		$all_sites_status_strings			= $sites_from_AQCM05_SITES_STATUS ;
		$all_sites_t_max_strings			= $sites_from_AQCM05_SITES_T_MAX ;
		$all_sites_nb_max_strings			= $sites_from_AQCM05_SITES_NB_MAX ;
		$all_sites_rx_warning_en_strings	= $sites_from_AQCM05_SITES_RX_WARNING_EN ;
		$all_sites_lon_strings				= $sites_from_AQCM05_SITES_LON ;
		$all_sites_lat_strings				= $sites_from_AQCM05_SITES_LAT ;
		$all_sites_ibm_strings				= $sites_from_AQCM05_SITES_IBM ;

		echo(print_r($all_sites_names_strings));echo("</br>");
		//-----------------------------------------------------------------
		// initialisation des variables
		//-----------------------------------------------------------------
		$user_type				= "none" ;
		$base_users				= "none" ;
		$table_users				= "none" ;
		
		$marqueur_temps_maintenant = time();
		$marqueur_temps_maintenant = mktime(0, 0, 0, date("m", $marqueur_temps_maintenant)  , date("d", $marqueur_temps_maintenant) + 1, date("Y", $marqueur_temps_maintenant) );

	}

	//-------------------------------------------------------------------------
	// recensement des identifiants et passwords des "super_users"
	//-------------------------------------------------------------------------
	if ( $code_erreur == 0 ) {
		
		//-----------------------------------------------------------------
		include ("../M0/get_super_users.php");
		
		if ( $NB_super_users > 0 ) {
			
			$k = 0 ;
			
			$sites_id_strings				= $all_sites_id_strings ;
			$sites_names_strings			= $all_sites_names_strings ;
			$sites_status_strings			= $all_sites_status_strings ;
			$sites_t_max_strings			= $all_sites_t_max_strings ;
			$sites_nb_max_strings			= $all_sites_nb_max_strings ;
			$sites_rx_warning_en_strings	= $all_sites_rx_warning_en_strings ;
			$sites_lon_strings				= $all_sites_lon_strings ;
			$sites_lat_strings				= $all_sites_lat_strings ;
			$sites_ibm_strings				= $all_sites_ibm_strings ;

			$off_sites_id_strings	= [] ;

			for ($j = 0; $j < sizeof($aqcm_SUPER_USER_ID); $j++) {
				
				if ( $aqcm_SUPER_USER_ID[$j] == $p_identifiant ) {
					
					$Flag_found_super_user	= true ;
					
					if ( 
							( $aqcm_SUPER_USER_STATUS[$j] 	== "ON" 							) &&  
							( $aqcm_SUPER_USER_LEVEL[$j]  	>= 90 								) &&  
							( $int_aqcm_SUPER_USER_T_MAX[$j] 	>= $marqueur_temps_maintenant	)   
						) {
						
						$user_OK[$k]					= $aqcm_SUPER_USER_ID[$j] ;
						$password_OK[$k]				= $aqcm_SUPER_USER_PW[$j] ;
						$status_OK[$k]				= $aqcm_SUPER_USER_STATUS[$j] ;
						$level_OK[$k]					= $aqcm_SUPER_USER_LEVEL[$j] ;
						$t_max_OK[$k]					= $aqcm_SUPER_USER_T_MAX[$j] ;
						$super_user_phone_OK[$k]	= $aqcm_SUPER_USER_2FA_PHONE[$j] ; 
						
						$k++ ;
						
					}
				
				}
				
			}
			
			if ( $Flag_found_super_user ) {
				
				//-----------------------------------------------------------------
				// si k == 1, l'utilisateur est un "super_user" unique !
				// si k != 1 alors qu'un superuser a été trouvé :
				//   soit -> les droits ne sont pas valides (probable)
				//   soit -> anomalie dans la base (duplicate ?)
				//-----------------------------------------------------------------
				if ( $k == 1 ) {
					
					$found_super_user	= true ;
					
					$user_type			= "super_user" ;
					$base_users			= "AQCM05_main" ;
					$table_users			= "AQCM05_SUPER_USERS" ;
					
				}
				else {
					
					$code_erreur = 3 ;
					$errorMessage = "super-utilisateur identifié mais l'accès est refusé !!!";
					
				}
				
			}
			
		}
		
	}
			
	//-------------------------------------------------------------------------
	// si non super-user, recensement des identifiants
	// dans les utilisateurs de sites
	//-------------------------------------------------------------------------
	if ( ( $code_erreur == 0 ) && ( $found_super_user == false ) ) {
				
		//---------------------------------------------------------------------
		// recensement des sites valides pour cet utilisateur "non logué"
		//---------------------------------------------------------------------
		$Flag_logged = false ;
		
		include ("../M0/get_sites_of_1_user.php");
		
		//---------------------------------------------------------------------
		if ( $Nb_sites <= 0 ) {
			
			if ( $Flag_found_normal_user ) {
				$code_erreur = 4 ;
				$errorMessage = "utilisateur standard identifié mais l'accès est refusé !!!";
			}
			else {
				$code_erreur = 5 ;
				$errorMessage = "utilisateur non identifié : accès refusé !!!";
			}
			
		}
		else {

			$found_normal_user		= true ;
			
			$user_type				= "normal_user" ;
			$base_users				= "AQCM05_SITE_" . $sites_id_strings[0] ;
			$table_users				= "AQCM05_SITE_USERS" ;

			$sites_id_strings				= $active_sites_id_strings ;
			$sites_names_strings			= $active_sites_names_strings ;
			$sites_status_strings			= $active_sites_status_strings ;
			$sites_t_max_strings			= $active_sites_t_max_strings ;
			$sites_nb_max_strings			= $active_sites_nb_max_strings ;
			$sites_rx_warning_en_strings	= $active_sites_rx_warning_en_strings ;
			$sites_lon_strings				= $active_sites_lon_strings ;
			$sites_lat_strings				= $active_sites_lat_strings ;
			$sites_ibm_strings				= $active_sites_ibm_strings ;

			$off_sites_id_strings	= $inactive_sites_id_strings ;

		}

	}

	//----------------------------------------------------------------------------
	include ("../M0/logging.php");
	include ("../M0/logging_function.php");

	if ( $found_super_user ) {
		$_SESSION['lost_password_2FA_phone'] = $super_user_phone_OK[0] ;
		$_SESSION['lost_code_2FA_msg'] = "" ;
		log_string( "AQCM05", "WARNING --> " . "password reset request for [ " . $p_identifiant . " ] ..." ) ;
		header( 'Location: ' . $root_dir . '/M1_1/lost_get_admin_2fa_code.php' );
		exit();
	}
	elseif ( $found_normal_user ) {
		log_string( "AQCM05", "WARNING --> " . "password reset request for [ " . $p_identifiant . " ] ..." ) ;
		header( 'Location: ' . $root_dir . '/M1_1/lost_password_execute.php' );
		exit();
	}
	else {
		$_SESSION['lost_password_message']	= $errorMessage ;
		log_string( "AQCM05", "WARNING --> " . "password reset for [ " . $p_identifiant . " ] : échec !!! (" . $errorMessage . ")" ) ;
		header( 'Location: ' . $root_dir . '/M1_1/lost_password_execute_failed.php' );
		exit();
	}

	//----------------------------------------------------------------------------

?>

