<?php
require_once 'config.php';

$msg = "";
$client_ip = $_SERVER['REMOTE_ADDR'] ?? 'unknown';

// Vérifier si l'IP est bloquée
if (!checkLoginAttempts($client_ip)) {
    $remaining_time = LOGIN_LOCKOUT_TIME - (time() - json_decode(file_get_contents(__DIR__ . '/login_attempts.json'), true)[$client_ip]['last_attempt']);
    $msg = '<span style="color:red">Trop de tentatives de connexion. Réessayez dans ' . ceil($remaining_time / 60) . ' minutes.</span>';
} else {
    // Traitement du formulaire de connexion
    if ($_POST && isset($_POST['username']) && isset($_POST['userPassword']) && isset($_POST['csrf_token'])) {
        
        // Vérifier le token CSRF
        if (!verifyCSRFToken($_POST['csrf_token'])) {
            $msg = '<span style="color:red">Token de sécurité invalide. Veuillez réessayer.</span>';
        } else {
            $username = sanitizeInput($_POST['username']);
            $password = $_POST['userPassword'];
            
            // Vérifier les identifiants
            if ($username === ADMIN_USERNAME && password_verify($password, ADMIN_PASSWORD_HASH)) {
                // Connexion réussie
                session_regenerate_id(true);
                $_SESSION['connected'] = true;
                $_SESSION['username'] = $username;
                $_SESSION['last_activity'] = time();
                
                // Supprimer les tentatives de connexion en cas de succès
                recordLoginAttempt($client_ip, true);
                
                $msg = '<span style="color:green">Connexion réussie !</span><br><a href="?page=home">Accéder à l\'administration</a>';
            } else {
                // Connexion échouée
                recordLoginAttempt($client_ip, false);
                $msg = '<span style="color:red">Identifiants incorrects.</span>';
                
                // Ajouter un délai pour ralentir les attaques par force brute
                sleep(2);
            }
        }
    }
}
?>
<section class="login" id="admin-sanctuary">
	<h2>Connexion</h2>
	<?= $msg; ?>
	<form method="post" action="./?page=login" style="margin-top: 1rem;" autocomplete="off">
		<input type="hidden" name="csrf_token" value="<?= htmlspecialchars(generateCSRFToken()); ?>">
		<div style="margin-bottom: 1.5rem;">
			<label for="username" style="display: block; margin-bottom: 0.5rem; font-weight: 500;">Utilisateur</label>
			<input type="text" name="username" id="username" placeholder="Utilisateur" required autocomplete="username" />
		</div>
		<div style="margin-bottom: 1.5rem;">
			<label for="userPassword" style="display: block; margin-bottom: 0.5rem; font-weight: 500;">Mot de passe</label>
			<input type="password" name="userPassword" id="userPassword" placeholder="Mot de passe" required autocomplete="current-password" />
		</div>
			<button type="submit" class="btn" id="admin-login">Se connecter</button>
	</form>
</section>