diff --git a/src/main/java/com/ieslamar/GestionInventario/DataInitializer.java b/src/main/java/com/ieslamar/GestionInventario/DataInitializer.java new file mode 100644 index 0000000..86104dc --- /dev/null +++ b/src/main/java/com/ieslamar/GestionInventario/DataInitializer.java @@ -0,0 +1,20 @@ + +package com.ieslamar.GestionInventario; +import com.ieslamar.GestionInventario.entities.Role; +import com.ieslamar.GestionInventario.services.UserService; +import org.springframework.boot.CommandLineRunner; +import org.springframework.context.annotation.Bean; +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"); +// }; +// } +} + diff --git a/src/main/java/com/ieslamar/GestionInventario/GestionInventarioApplication.java b/src/main/java/com/ieslamar/GestionInventario/GestionInventarioApplication.java index 40b2695..e879a71 100644 --- a/src/main/java/com/ieslamar/GestionInventario/GestionInventarioApplication.java +++ b/src/main/java/com/ieslamar/GestionInventario/GestionInventarioApplication.java @@ -1,5 +1,6 @@ package com.ieslamar.GestionInventario; +import com.ieslamar.GestionInventario.controllers.UserController; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; diff --git a/src/main/java/com/ieslamar/GestionInventario/controllers/AuthController.java b/src/main/java/com/ieslamar/GestionInventario/controllers/AuthController.java index 8951063..f937944 100644 --- a/src/main/java/com/ieslamar/GestionInventario/controllers/AuthController.java +++ b/src/main/java/com/ieslamar/GestionInventario/controllers/AuthController.java @@ -15,8 +15,8 @@ public class AuthController { } @PostMapping("/register") - public ResponseEntity register(@RequestParam String username, @RequestParam String password, @RequestParam String role) { - userService.registerUser(username, password, role); + public ResponseEntity register(@RequestParam String username, @RequestParam String password, @RequestParam String role, @RequestParam String mail) { + userService.registerUser(username, password, role, mail); 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 3cd47ab..46ed7c4 100644 --- a/src/main/java/com/ieslamar/GestionInventario/controllers/UserController.java +++ b/src/main/java/com/ieslamar/GestionInventario/controllers/UserController.java @@ -34,8 +34,8 @@ public class UserController { } @PostMapping("/register") - public String register(@RequestParam String username, @RequestParam String password, @RequestParam String role) { - userService.registerUser(username, password, role); + public String register(@RequestParam String username, @RequestParam String password, @RequestParam String role, @RequestParam String mail) { + userService.registerUser(username, password, role, mail); return "redirect:/login?success"; // Redirige al login tras registrarse } } diff --git a/src/main/java/com/ieslamar/GestionInventario/entities/User.java b/src/main/java/com/ieslamar/GestionInventario/entities/User.java index 7a4b6cd..0c7d38f 100644 --- a/src/main/java/com/ieslamar/GestionInventario/entities/User.java +++ b/src/main/java/com/ieslamar/GestionInventario/entities/User.java @@ -15,7 +15,7 @@ public class User { private Long id; @Column(nullable = false, unique = true) // No se permite usuarios duplicados - private String username; + private String nombre; @Column(nullable = false) private String password; @@ -23,6 +23,10 @@ public class User { @Enumerated(EnumType.STRING) @Column(nullable = false) private Role role; // Rol del usuario (USER o ADMIN) + + @Column(nullable = false, unique = true) // No se permite emails duplicados + private String mail; + } diff --git a/src/main/java/com/ieslamar/GestionInventario/repos/UserRepository.java b/src/main/java/com/ieslamar/GestionInventario/repos/UserRepository.java index 52ef6ab..d4a5ea7 100644 --- a/src/main/java/com/ieslamar/GestionInventario/repos/UserRepository.java +++ b/src/main/java/com/ieslamar/GestionInventario/repos/UserRepository.java @@ -5,5 +5,5 @@ import org.springframework.data.jpa.repository.JpaRepository; import java.util.Optional; public interface UserRepository extends JpaRepository { - Optional findByUsername(String username); + Optional findByNombre(String username); } diff --git a/src/main/java/com/ieslamar/GestionInventario/services/UserDetailsServiceImpl.java b/src/main/java/com/ieslamar/GestionInventario/services/UserDetailsServiceImpl.java index a3fd610..13431c5 100644 --- a/src/main/java/com/ieslamar/GestionInventario/services/UserDetailsServiceImpl.java +++ b/src/main/java/com/ieslamar/GestionInventario/services/UserDetailsServiceImpl.java @@ -21,11 +21,11 @@ public class UserDetailsServiceImpl implements UserDetailsService { @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { - User user = userRepository.findByUsername(username) + User user = userRepository.findByNombre(username) .orElseThrow(() -> new UsernameNotFoundException("Usuario no encontrado")); return new org.springframework.security.core.userdetails.User( - user.getUsername(), + user.getNombre(), user.getPassword(), Collections.singletonList(new SimpleGrantedAuthority("ROLE_" + user.getRole().name())) ); diff --git a/src/main/java/com/ieslamar/GestionInventario/services/UserService.java b/src/main/java/com/ieslamar/GestionInventario/services/UserService.java index e28108a..2ca58e9 100644 --- a/src/main/java/com/ieslamar/GestionInventario/services/UserService.java +++ b/src/main/java/com/ieslamar/GestionInventario/services/UserService.java @@ -17,11 +17,12 @@ public class UserService { this.passwordEncoder = passwordEncoder; } - public void registerUser(String username, String password, String role) { + public void registerUser(String username, String password, String role, String mail) { User user = new User(); - user.setUsername(username); + user.setNombre(username); user.setPassword(passwordEncoder.encode(password)); user.setRole(Role.valueOf(role)); + user.setMail(mail); userRepository.save(user); } } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index fb96634..9ba348e 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -14,7 +14,7 @@ spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # Configuración de JPA e Hibernate spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect -spring.jpa.hibernate.ddl-auto=update +#spring.jpa.hibernate.ddl-auto=update