From 64b99c91940f65d1fd9006279cebf45b7cb129a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Elias=20Rios=20Nu=C3=B1ez?= Date: Fri, 26 Sep 2025 11:02:01 -0300 Subject: [PATCH] Actualizacion --- app/Http/Controllers/ProductoController.php | 58 +++++++++++++++++++++ routes/web.php | 22 ++++---- 2 files changed, 69 insertions(+), 11 deletions(-) create mode 100644 app/Http/Controllers/ProductoController.php diff --git a/app/Http/Controllers/ProductoController.php b/app/Http/Controllers/ProductoController.php new file mode 100644 index 0000000..54e13a8 --- /dev/null +++ b/app/Http/Controllers/ProductoController.php @@ -0,0 +1,58 @@ +middleware('auth')->except(['index', 'mostrar']); + + // Aplica el middleware 'can:administrar-productos' solo a los + // métodos que modifican los datos. + $this->middleware('can:administrar-productos')->only(['crear', 'guardar', 'editar', 'actualizar', 'eliminar']); + } + + public function index() + { + // Muestra la lista de productos al público. + } + + public function mostrar($id) + { + // Muestra los detalles de un producto al público. + } + + public function crear() + { + // Muestra el formulario para crear un producto. + } + + public function guardar(Request $request) + { + // Guarda el nuevo producto en la base de datos. + } + + public function editar($id) + { + // Muestra el formulario para editar un producto. + } + + public function actualizar(Request $request, $id) + { + // Actualiza el producto en la base de datos. + } + + public function eliminar($id) + { + // Elimina el producto de la base de datos. + } +} \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 32c1c8b..4082e87 100644 --- a/routes/web.php +++ b/routes/web.php @@ -3,16 +3,16 @@ use Illuminate\Support\Facades\Route; use App\Http\Controllers\CatalogoController; -// Route::get('/', function () { -// return view('welcome'); -// }); +use App\Http\Controllers\ProductoController; -// Route::get('/{dni}', function ($dni) { -// return view('home',['dni'=>$dni]); -// }); +// Se aplica el middleware a todas las rutas dentro del grupo. +Route::middleware(['auth', 'can:administrar-productos'])->group(function () { + Route::get('/catalogo/productos/crear', [ProductoController::class, 'crear']); + Route::post('/catalogo/productos', [ProductoController::class, 'guardar']); + Route::get('/catalogo/productos/{id}/editar', [ProductoController::class, 'editar']); + Route::put('/catalogo/productos/{id}', [ProductoController::class, 'actualizar']); + Route::delete('/catalogo/productos/{id}', [ProductoController::class, 'eliminar']); +}); -// Ruta para ver el catálogo. -Route::get('/catalogo', [CatalogoController::class, 'mostrarCatalogo'])->name('catalogo.mostrar'); - -// Ruta para ver el formulario de creación. -Route::get('/catalogo/crear', [CatalogoController::class, 'crear'])->name('catalogo.crear'); \ No newline at end of file +// Esta ruta es pública, no requiere middleware. +Route::get('/catalogo', [CatalogoController::class, 'index']); \ No newline at end of file