From 4ad3ed7f512bee241752380497ccc3f47bd0e00d Mon Sep 17 00:00:00 2001 From: jon ander Date: Tue, 8 Apr 2025 20:24:38 +0200 Subject: [PATCH] Enhance user registration process by adding optional department association and update related UI components --- .../GestionInventario/DataInitializer.java | 14 +++++----- .../controllers/AuthController.java | 2 +- .../controllers/UserController.java | 3 +- .../GestionInventario/entities/User.java | 2 ++ .../services/UserService.java | 4 +-- src/main/resources/db/Inventario_bueno_v1.sql | 28 ++++++++++++++++++- src/main/resources/templates/home.html | 2 +- src/main/resources/templates/register.html | 4 +++ 8 files changed, 45 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/ieslamar/GestionInventario/DataInitializer.java b/src/main/java/com/ieslamar/GestionInventario/DataInitializer.java index 86104dc..bfce27b 100644 --- a/src/main/java/com/ieslamar/GestionInventario/DataInitializer.java +++ b/src/main/java/com/ieslamar/GestionInventario/DataInitializer.java @@ -9,12 +9,12 @@ import org.springframework.context.annotation.Configuration; @Configuration public class DataInitializer { -// @Bean -// public CommandLineRunner initData(UserService userService) { -// return args -> { -// userService.registerUser("admin", "admin123", Role.ADMIN.name(), "admin123@ejemplo.com"); -// userService.registerUser("user", "user123", Role.USER.name(), "user123@ejemplo.com"); -// }; -// } + @Bean + public CommandLineRunner initData(UserService userService) { + return args -> { + userService.registerUser("admin", "admin123", Role.ADMIN.name(), "admin123@ejemplo.com",null); + userService.registerUser("user", "user123", Role.USER.name(), "user123@ejemplo.com",null); + }; + } } diff --git a/src/main/java/com/ieslamar/GestionInventario/controllers/AuthController.java b/src/main/java/com/ieslamar/GestionInventario/controllers/AuthController.java index 24d85b7..72e8aae 100644 --- a/src/main/java/com/ieslamar/GestionInventario/controllers/AuthController.java +++ b/src/main/java/com/ieslamar/GestionInventario/controllers/AuthController.java @@ -16,7 +16,7 @@ public class AuthController { @PostMapping("/regisater") public ResponseEntity register(@RequestParam String username, @RequestParam String password, @RequestParam String role, @RequestParam String mail) { - userService.registerUser(username, password, role, mail); + userService.registerUser(username, password, role, mail,null); return ResponseEntity.ok("User registered successfully"); } } diff --git a/src/main/java/com/ieslamar/GestionInventario/controllers/UserController.java b/src/main/java/com/ieslamar/GestionInventario/controllers/UserController.java index 5d9708d..862f9b8 100644 --- a/src/main/java/com/ieslamar/GestionInventario/controllers/UserController.java +++ b/src/main/java/com/ieslamar/GestionInventario/controllers/UserController.java @@ -28,7 +28,6 @@ public class UserController { @GetMapping("/home") public String homePage(Model model) { - model.addAttribute("message", "Bienvenido a Gestión de Inventario"); return "home"; // Retorna la vista home.html } @@ -39,7 +38,7 @@ public class UserController { @PostMapping("/register") public String register(@RequestParam String username, @RequestParam String password, @RequestParam String role, @RequestParam String mail) { - userService.registerUser(username, password, role, mail); + userService.registerUser(username, password, role, mail, null); return "redirect:/login?success"; // Redirige al login tras registrarse } @GetMapping("/management") diff --git a/src/main/java/com/ieslamar/GestionInventario/entities/User.java b/src/main/java/com/ieslamar/GestionInventario/entities/User.java index 0c7d38f..1ee3d4a 100644 --- a/src/main/java/com/ieslamar/GestionInventario/entities/User.java +++ b/src/main/java/com/ieslamar/GestionInventario/entities/User.java @@ -27,6 +27,8 @@ public class User { @Column(nullable = false, unique = true) // No se permite emails duplicados private String mail; + @Column(nullable = true) + private Integer departamentos_iddepartamentos; } diff --git a/src/main/java/com/ieslamar/GestionInventario/services/UserService.java b/src/main/java/com/ieslamar/GestionInventario/services/UserService.java index 1bed7ab..a35e77c 100644 --- a/src/main/java/com/ieslamar/GestionInventario/services/UserService.java +++ b/src/main/java/com/ieslamar/GestionInventario/services/UserService.java @@ -3,7 +3,6 @@ package com.ieslamar.GestionInventario.services; import com.ieslamar.GestionInventario.entities.Role; import com.ieslamar.GestionInventario.entities.User; import com.ieslamar.GestionInventario.repos.UserRepository; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; @@ -19,12 +18,13 @@ public class UserService { this.passwordEncoder = passwordEncoder; } - public void registerUser(String username, String password, String role, String mail) { + public void registerUser(String username, String password, String role, String mail, Integer departamentos_iddepartamentos) { User user = new User(); user.setNombre(username); user.setPassword(passwordEncoder.encode(password)); user.setRole(Role.valueOf(role)); user.setMail(mail); + user.setDepartamentos_iddepartamentos(departamentos_iddepartamentos); userRepository.save(user); } public List getAllUsers() { diff --git a/src/main/resources/db/Inventario_bueno_v1.sql b/src/main/resources/db/Inventario_bueno_v1.sql index f7517ac..8432c2c 100644 --- a/src/main/resources/db/Inventario_bueno_v1.sql +++ b/src/main/resources/db/Inventario_bueno_v1.sql @@ -17,6 +17,18 @@ SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,N CREATE SCHEMA IF NOT EXISTS `inventario` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci ; USE `inventario` ; +-- ----------------------------------------------------- +-- Table `inventario`.`departamentos` +-- ----------------------------------------------------- +DROP TABLE IF EXISTS `inventario`.`departamentos` ; + +CREATE TABLE IF NOT EXISTS `inventario`.`departamentos` ( + `iddepartamentos` INT NOT NULL, + `Nombre` VARCHAR(45) NULL, + PRIMARY KEY (`iddepartamentos`)) +ENGINE = InnoDB; + + -- ----------------------------------------------------- -- Table `inventario`.`users` -- ----------------------------------------------------- @@ -28,9 +40,16 @@ CREATE TABLE IF NOT EXISTS `inventario`.`users` ( `role` ENUM('ADMIN', 'USER') CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_0900_ai_ci' NOT NULL, `nombre` VARCHAR(255) NOT NULL, `mail` VARCHAR(45) NOT NULL, + `departamentos_iddepartamentos` INT NULL, PRIMARY KEY (`id`), UNIQUE INDEX `UKr43af9ap4edm43mmtq01oddj6` (`nombre` ASC) VISIBLE, - UNIQUE INDEX `mail_UNIQUE` (`mail` ASC) VISIBLE) + UNIQUE INDEX `mail_UNIQUE` (`mail` ASC) VISIBLE, + INDEX `fk_users_departamentos1_idx` (`departamentos_iddepartamentos` ASC) VISIBLE, + CONSTRAINT `fk_users_departamentos1` + FOREIGN KEY (`departamentos_iddepartamentos`) + REFERENCES `inventario`.`departamentos` (`iddepartamentos`) + ON DELETE NO ACTION + ON UPDATE NO ACTION) ENGINE = InnoDB AUTO_INCREMENT = 6 DEFAULT CHARACTER SET = utf8mb4 @@ -105,12 +124,19 @@ CREATE TABLE IF NOT EXISTS `inventario`.`producto` ( `nombre` VARCHAR(45) NULL, `productocol` VARCHAR(45) NULL, `categoria_idcategoria` INT NOT NULL, + `departamentos_iddepartamentos` INT NOT NULL, PRIMARY KEY (`idproducto`), INDEX `fk_producto_categoria1_idx` (`categoria_idcategoria` ASC) VISIBLE, + INDEX `fk_producto_departamentos1_idx` (`departamentos_iddepartamentos` ASC) VISIBLE, CONSTRAINT `fk_producto_categoria1` FOREIGN KEY (`categoria_idcategoria`) REFERENCES `inventario`.`categoria` (`idcategoria`) ON DELETE NO ACTION + ON UPDATE NO ACTION, + CONSTRAINT `fk_producto_departamentos1` + FOREIGN KEY (`departamentos_iddepartamentos`) + REFERENCES `inventario`.`departamentos` (`iddepartamentos`) + ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; diff --git a/src/main/resources/templates/home.html b/src/main/resources/templates/home.html index 3511d97..f213fc8 100644 --- a/src/main/resources/templates/home.html +++ b/src/main/resources/templates/home.html @@ -5,7 +5,7 @@ -

+

Bienvenido a Gestión de Inventario

diff --git a/src/main/resources/templates/register.html b/src/main/resources/templates/register.html index e173013..9bf8e03 100644 --- a/src/main/resources/templates/register.html +++ b/src/main/resources/templates/register.html @@ -30,7 +30,11 @@
+ + + +