Carpeta models
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
<?php
|
||||
|
||||
require_once __DIR__ . '/../database/database.php';
|
||||
|
||||
class logInModel {
|
||||
|
||||
private $db;
|
||||
|
||||
// ESTABLECER CONECCIÓN CON BASE DE DATOS
|
||||
|
||||
public function __construct() {
|
||||
$this->db = Database::getConnection(); // Guardamos el objeto PDO en $db
|
||||
}
|
||||
|
||||
// BUSCAR USUARIO
|
||||
|
||||
public function buscarPorUsuario($usuario) {
|
||||
|
||||
$sql = "SELECT * FROM usuarios WHERE (usuario = :usuario) AND (usuarios.activo = true) LIMIT 1"; // LIMIT 1, más que nada por seguridad u optimizacón. :usuario es reemplazado luego con el valor real
|
||||
|
||||
$stmt = $this->db->prepare($sql); // Uso de prepare para evitar SQL Injection
|
||||
|
||||
$stmt->bindParam(':usuario', $usuario, PDO::PARAM_STR); // Asocia la variable $usuario con el placeholder :usuario en la consulta.
|
||||
|
||||
$stmt->execute(); // Ejecuta la consulta ya preparada con los parámetros vinculados
|
||||
|
||||
return $stmt->fetch(PDO::FETCH_ASSOC); // Obtiene la primera fila del resultado como un array asociativo
|
||||
}
|
||||
|
||||
// INVALIDAR POR USUARIO
|
||||
|
||||
public function invalidarPorUsuario(int $id): bool {
|
||||
|
||||
$sql = "UPDATE recuperacion_cuenta
|
||||
SET usado = 1
|
||||
WHERE (id_usuario = :id_usuario)";
|
||||
|
||||
$stmt = $this->db->prepare($sql);
|
||||
|
||||
return $stmt->execute([':id_usuario' => $id]);
|
||||
}
|
||||
|
||||
// CREAR RECUPERACIÓN
|
||||
|
||||
public function crear(array $data): bool {
|
||||
|
||||
$sql = "INSERT INTO recuperacion_cuenta (id_usuario, codigo, expira_a, usado) VALUES (:id_usuario, :codigo, :expira_a, 0)";
|
||||
|
||||
$stmt = $this->db->prepare($sql);
|
||||
|
||||
return $stmt->execute([
|
||||
':id_usuario' => $data['id_usuario'],
|
||||
':codigo' => $data['codigo'],
|
||||
':expira_a' => $data['expira_a']
|
||||
]);
|
||||
}
|
||||
|
||||
// OBTENER ÚLTIMO CÓDIGO VÁLIDO
|
||||
|
||||
public function obtenerCodigoValido(int $idUsuario): ?array {
|
||||
|
||||
$sql = "SELECT id, codigo, expira_a, usado FROM recuperacion_cuenta
|
||||
WHERE (id_usuario = :id_usuario) AND (usado = 0)
|
||||
ORDER BY id DESC LIMIT 1";
|
||||
|
||||
$stmt = $this->db->prepare($sql);
|
||||
|
||||
$stmt->execute([':id_usuario' => $idUsuario]);
|
||||
|
||||
return $stmt->fetch(PDO::FETCH_ASSOC) ?: null;
|
||||
}
|
||||
|
||||
// MARCAR COMO USADO
|
||||
|
||||
public function marcarComoUsado(int $id): bool {
|
||||
|
||||
$sql = "UPDATE recuperacion_cuenta
|
||||
SET usado = 1
|
||||
WHERE id = :id";
|
||||
|
||||
$stmt = $this->db->prepare($sql);
|
||||
|
||||
return $stmt->execute([':id' => $id]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user