changes: api/usuarios/registrar para que admita solo un rol y los roles esten en la base de datos
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
package com.example.fercoganbackend.service;
|
||||
import com.example.fercoganbackend.entity.Rol;
|
||||
import com.example.fercoganbackend.entity.Roles;
|
||||
import com.example.fercoganbackend.entity.Usuario;
|
||||
import com.example.fercoganbackend.otros.ConfirmadoTF;
|
||||
import com.example.fercoganbackend.repository.RolesRepository;
|
||||
import com.example.fercoganbackend.repository.UsuarioRepository;
|
||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -12,20 +14,25 @@ import java.util.Set;
|
||||
public class UsuarioService {
|
||||
private final UsuarioRepository repo;
|
||||
private final PasswordEncoder encoder;
|
||||
private final RolesRepository rolesRepository;
|
||||
|
||||
public List<Usuario> getAll(){
|
||||
return repo.findAll();
|
||||
}
|
||||
public UsuarioService(UsuarioRepository repo, PasswordEncoder encoder) {
|
||||
public UsuarioService(UsuarioRepository repo, PasswordEncoder encoder, RolesRepository rolesRepository) {
|
||||
this.repo = repo;
|
||||
this.encoder = encoder;
|
||||
this.rolesRepository = rolesRepository;
|
||||
}
|
||||
|
||||
public Usuario registrarUsuario(String username, String password, Set<Rol> roles) {
|
||||
public Usuario registrarUsuario(String username, String password, Set<Rol> roles, Long rolId) {
|
||||
Roles rol = rolesRepository.findById(rolId)
|
||||
.orElseThrow(() -> new RuntimeException("Rol no encontrado"));
|
||||
Usuario u = new Usuario();
|
||||
u.setUsername(username);
|
||||
u.setPassword(encoder.encode(password));
|
||||
u.setRoles(roles);
|
||||
u.setRol(rol);
|
||||
u.setAprobado(false); // no aprobado hasta aceptación
|
||||
return repo.save(u);
|
||||
}
|
||||
@@ -82,6 +89,12 @@ public class UsuarioService {
|
||||
return usuario.getId();
|
||||
}
|
||||
|
||||
public Long obtenerIdRolPorUsername(String username) {
|
||||
return repo.findByUsername(username)
|
||||
.map(usuario -> usuario.getRol().getId()) // Navega: Usuario -> Rol -> Id
|
||||
.orElse(null); // O podrías lanzar una excepción si el usuario no existe
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user