fix(turnero): login detecta dispositivo por token antes de buscar por IP
La detección de tablet fija solo buscaba por IP; tablets con token configurado no hacían match y caían al redirect de rol (recepcion). Ahora busca primero por cookie turnero_token y como fallback por IP. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
e41663cff0
commit
88fd0e4151
@@ -41,16 +41,31 @@ if ($_POST && !$loginBlocked) {
|
||||
$_SESSION['login_ip'] = $clientIp;
|
||||
$_SESSION['login_time'] = time();
|
||||
|
||||
// Tablet fija: redirigir al lugar asignado por IP y bloquear el resto
|
||||
// Tablet fija: redirigir al lugar asignado por token o IP
|
||||
try {
|
||||
$_dispStmt = Database::getInstance()->getConnection()->prepare(
|
||||
"SELECT td.lugar_id, td.nombre, tl.tipo
|
||||
FROM turnero_dispositivos td
|
||||
JOIN turnero_lugares tl ON tl.id = td.lugar_id
|
||||
WHERE td.ip = ? AND td.activo = 1 LIMIT 1"
|
||||
);
|
||||
$_dispStmt->execute([$clientIp]);
|
||||
$_disp = $_dispStmt->fetch(PDO::FETCH_ASSOC);
|
||||
$_pdo2 = Database::getInstance()->getConnection();
|
||||
$_disp = null;
|
||||
$_devToken = trim($_COOKIE['turnero_token'] ?? '');
|
||||
if ($_devToken) {
|
||||
$_s = $_pdo2->prepare(
|
||||
"SELECT td.lugar_id, td.nombre, tl.tipo
|
||||
FROM turnero_dispositivos td
|
||||
JOIN turnero_lugares tl ON tl.id = td.lugar_id
|
||||
WHERE td.token = ? AND td.activo = 1 LIMIT 1"
|
||||
);
|
||||
$_s->execute([$_devToken]);
|
||||
$_disp = $_s->fetch(PDO::FETCH_ASSOC) ?: null;
|
||||
}
|
||||
if (!$_disp) {
|
||||
$_s = $_pdo2->prepare(
|
||||
"SELECT td.lugar_id, td.nombre, tl.tipo
|
||||
FROM turnero_dispositivos td
|
||||
JOIN turnero_lugares tl ON tl.id = td.lugar_id
|
||||
WHERE td.ip = ? AND td.activo = 1 LIMIT 1"
|
||||
);
|
||||
$_s->execute([$clientIp]);
|
||||
$_disp = $_s->fetch(PDO::FETCH_ASSOC) ?: null;
|
||||
}
|
||||
if ($_disp) {
|
||||
$_SESSION['turnero_dispositivo'] = $_disp;
|
||||
$url = $_disp['tipo'] === 'recepcion'
|
||||
|
||||
Reference in New Issue
Block a user