This commit is contained in:
Lizandro Guarnizo
2026-01-12 11:06:43 -05:00
parent ce12ac2cce
commit dd36ed6fe0
110 changed files with 20873 additions and 696 deletions
+44 -25
View File
@@ -20,9 +20,20 @@ if (isUserLoggedIn()) {
}
$error = '';
$success = '';
$loginBlocked = false;
$clientIp = $_SERVER['REMOTE_ADDR'] ?? '0.0.0.0';
// Verificar si viene de logout
if (isset($_GET['logged_out']) && $_GET['logged_out'] == '1') {
$success = 'Sesión cerrada correctamente.';
}
// Verificar si la sesión expiró
if (isset($_GET['session_expired']) && $_GET['session_expired'] == '1') {
$error = 'Su sesión ha expirado por inactividad. Por favor, inicie sesión nuevamente.';
}
// Verificar si la IP está bloqueada
if (!checkLoginAttempts($clientIp)) {
$loginBlocked = true;
@@ -34,31 +45,31 @@ if ($_POST && !$loginBlocked) {
$username = trim($_POST['username'] ?? '');
$password = $_POST['password'] ?? '';
if ($username === ADMIN_USERNAME) {
// Verificar contraseña
$adminHash = constant('ADMIN_PASSWORD');
if (password_verify($password, $adminHash)) {
// Login exitoso
clearLoginAttempts($clientIp);
$_SESSION['admin_logged_in'] = true;
$_SESSION['last_activity'] = time();
$_SESSION['login_ip'] = $clientIp;
$_SESSION['login_time'] = time();
header('Location: index.php');
exit;
// Usar el nuevo sistema de autenticación unificado
$adminUser = authenticateUser($username, $password);
if ($adminUser) {
// Login exitoso
clearLoginAttempts($clientIp);
$_SESSION['admin_logged_in'] = true;
$_SESSION['admin_user'] = $adminUser;
$_SESSION['last_activity'] = time();
$_SESSION['login_ip'] = $clientIp;
$_SESSION['login_time'] = time();
header('Location: index.php');
exit;
} else {
// Login fallido
recordFailedLogin($clientIp);
$error = 'Usuario o contraseña incorrectos.';
// Verificar si se bloqueó después de este intento
if (!checkLoginAttempts($clientIp)) {
$loginBlocked = true;
$error = 'Demasiados intentos de login. Cuenta bloqueada por ' . (LOGIN_LOCKOUT_TIME / 60) . ' minutos.';
}
}
// Login fallido
recordFailedLogin($clientIp);
$error = 'Usuario o contraseña incorrectos.';
// Verificar si se bloqueó después de este intento
if (!checkLoginAttempts($clientIp)) {
$loginBlocked = true;
$error = 'Demasiados intentos de login. Cuenta bloqueada por ' . (LOGIN_LOCKOUT_TIME / 60) . ' minutos.';
}
}
?>
<!DOCTYPE html>
@@ -200,8 +211,8 @@ if ($_POST && !$loginBlocked) {
name="username"
required
<?= $loginBlocked ? 'disabled' : '' ?>
value="admin"
readonly
placeholder="Ingresa tu usuario"
value="<?= htmlspecialchars($_POST['username'] ?? '') ?>"
>
</div>
@@ -231,6 +242,14 @@ if ($_POST && !$loginBlocked) {
</div>
</div>
<!-- Success Messages -->
<?php if ($success): ?>
<div class="alert alert-success">
<i class="fas fa-check-circle me-2"></i>
<?= htmlspecialchars($success) ?>
</div>
<?php endif; ?>
<!-- Error Messages -->
<?php if ($error && !$loginBlocked): ?>
<div class="alert alert-danger">