inicio
This commit is contained in:
2025-05-05 11:03:01 -06:00
commit c73e3f2327
185 changed files with 17573 additions and 0 deletions

76
app/controllers/login.php Normal file
View File

@@ -0,0 +1,76 @@
<?php
require_once __DIR__ . '/../helpers/session.php';
require_once __DIR__ . '/../../config/database.php';
require_once __DIR__ . '/../helpers/crypto.php';
require_once __DIR__ . '/../helpers/bitacoras.php';
require_once __DIR__ . '/../helpers/env.php';
loadEnv();
function index()
{
include __DIR__ . '/../../views/login/index.php';
}
function validar()
{
$conn = getConnection();
$email = trim($_POST['email'] ?? '');
$password = $_POST['password'] ?? '';
$ip = $_SERVER['REMOTE_ADDR'] ?? 'N/A';
if (empty($email) || empty($password)) {
$_SESSION['login_error'] = 'Debes ingresar ambos campos.';
header('Location: /IMPORTADORES/login');
exit;
}
$emailEncrypted = encrypt($email);
$sql = "SELECT id_usuario, nombre, email, password_hash, tipo_usuario, activo
FROM usuarios_sistema
WHERE email = ?";
$stmt = sqlsrv_query($conn, $sql, [$emailEncrypted]);
if ($stmt && $row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
if (!$row['activo']) {
registrarBitacora($conn, $row['id_usuario'], $email, $ip, 0, 'Usuario inactivo');
$_SESSION['login_error'] = 'Tu usuario está inactivo.';
header('Location: /IMPORTADORES/login');
exit;
}
if (password_verify($password, $row['password_hash'])) {
$_SESSION['usuario_id'] = $row['id_usuario'];
$_SESSION['usuario_nombre'] = decrypt($row['nombre']);
$_SESSION['usuario_email'] = $email;
$_SESSION['tipo_usuario'] = $row['tipo_usuario'];
registrarBitacora($conn, $row['id_usuario'], $email, $ip, 1, 'Login exitoso');
// Redirección por rol
if ($row['tipo_usuario'] === 'importador') {
header('Location: /IMPORTADORES/importadores/dashboard');
} elseif ($row['tipo_usuario'] === 'agente_aduanal') {
header('Location: /IMPORTADORES/AGENTES/dashboard');
} else {
header('Location: /IMPORTADORES/importadores/dashboard');
}
exit;
} else {
registrarBitacora($conn, $row['id_usuario'], $email, $ip, 0, 'Contraseña incorrecta');
}
} else {
registrarBitacora($conn, null, $email, $ip, 0, 'Usuario no encontrado');
}
$_SESSION['login_error'] = 'Credenciales incorrectas.';
header('Location: /IMPORTADORES/login');
}