Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
Formaciones
/
Controladores
:
UsuarioControlador.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php // Controladores/UsuarioControlador.php require_once 'Modelos/UsuarioModelo.php'; class UsuarioControlador { private $modelo; public function __construct($db, $db_externa = null) { $this->modelo = new UsuarioModelo($db, $db_externa); // Seguridad: Solo admin entra aquí if (!esta_autenticado() || usuario_actual()['rol'] !== 'admin') { $_SESSION['error'] = "No tienes permiso para acceder a esta sección."; header("Location: index.php?r=dashboard"); exit; } } /** Pantalla principal de gestión de usuarios */ public function index() { // Capturar el término de búsqueda $busqueda = $_GET['busqueda'] ?? ''; // Configuración de paginación $por_pagina = 10; $pagina_actual = isset($_GET['p']) ? (int)$_GET['p'] : 1; if ($pagina_actual < 1) $pagina_actual = 1; $inicio = ($pagina_actual - 1) * $por_pagina; // Obtener datos con filtro de búsqueda $total_usuarios = $this->modelo->contarTotal($busqueda); $total_paginas = ceil($total_usuarios / $por_pagina); $usuarios = $this->modelo->listarPaginado($inicio, $por_pagina, $busqueda); // Cargar vistas pasando las variables de paginación y búsqueda require_once 'Vistas/plantilla/encabezado.php'; require_once 'Vistas/admin/usuarios.php'; require_once 'Vistas/plantilla/pie.php'; } /** Procesar el formulario de creación de usuario */ public function guardar() { if ($_SERVER['REQUEST_METHOD'] === 'POST') { if ($this->modelo->guardarManual($_POST)) { $_SESSION['mensaje'] = "Usuario creado con éxito."; } else { $_SESSION['error'] = "Error al crear el usuario."; } } header("Location: index.php?r=admin/usuarios"); exit; } /** Mostrar formulario de edición (Botón Ver) */ public function ver() { $id = $_GET['id'] ?? null; $usuario = $this->modelo->obtenerPorId($id); if (!$usuario) { $_SESSION['error'] = "Usuario no encontrado."; header("Location: index.php?r=admin/usuarios"); exit; } require_once 'Vistas/plantilla/encabezado.php'; require_once 'Vistas/admin/usuarios_editar.php'; require_once 'Vistas/plantilla/pie.php'; } /** Procesar la actualización de datos */ public function actualizar() { if ($_SERVER['REQUEST_METHOD'] === 'POST') { $id = $_POST['id']; if ($this->modelo->actualizar($id, $_POST)) { $_SESSION['mensaje'] = "Usuario actualizado correctamente."; } else { $_SESSION['error'] = "Error al actualizar el usuario."; } } header("Location: index.php?r=admin/usuarios"); exit; } }