77 lines
2.4 KiB
PHP
77 lines
2.4 KiB
PHP
<?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');
|
|
}
|
|
|
|
|
|
|