Files
TEST/src/main/java/com/example/fercoganbackend/service/UsuarioService.java
andre00bejarano00vaca b47e43df57
Some checks failed
Deploy Spring Boot App / build-and-deploy (push) Has been cancelled
correcion del put
2025-10-10 14:48:17 -04:00

72 lines
2.4 KiB
Java

package com.example.fercoganbackend.service;
import com.example.fercoganbackend.entity.Rol;
import com.example.fercoganbackend.entity.Usuario;
import com.example.fercoganbackend.otros.ConfirmadoTF;
import com.example.fercoganbackend.repository.UsuarioRepository;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Set;
@Service
public class UsuarioService {
private final UsuarioRepository repo;
private final PasswordEncoder encoder;
public List<Usuario> getAll(){
return repo.findAll();
}
public UsuarioService(UsuarioRepository repo, PasswordEncoder encoder) {
this.repo = repo;
this.encoder = encoder;
}
public Usuario registrarUsuario(String username, String password, Set<Rol> roles) {
Usuario u = new Usuario();
u.setUsername(username);
u.setPassword(encoder.encode(password));
u.setRoles(roles);
u.setAprobado(false); // no aprobado hasta aceptación
return repo.save(u);
}
public Usuario actualizarUsuario(Long id, Usuario usuario) {
Usuario existente = repo.findById(id)
.orElseThrow(() -> new RuntimeException("Usuario no encontrado"));
existente.setUsername(usuario.getUsername());
existente.setPassword(encoder.encode(usuario.getPassword()));
existente.setRoles(usuario.getRoles());
existente.setAprobado(usuario.isAprobado());
existente.setVisible(usuario.getVisible());
return repo.save(existente); // <-- Aquí sí se actualiza el existente
}
public List<Usuario> listarPendientes() {
return repo.findAll().stream().filter(u -> !u.isAprobado()).toList();
}
public Usuario aceptarUsuario(Long id) {
Usuario u = repo.findById(id).orElseThrow();
u.setAprobado(true);
return repo.save(u);
}
public boolean estaAprobado(String username) {
return repo.findByUsername(username).map(Usuario::isAprobado).orElse(false);
}
public boolean estaRegistrado(String username) {
return repo.findByUsername(username).isPresent();
}
public ConfirmadoTF registradoYAprobado(String username){
ConfirmadoTF confirmadotf = new ConfirmadoTF();
confirmadotf.setAuthenticated(estaRegistrado(username));
confirmadotf.setConfirmed(estaAprobado(username));
return confirmadotf;
}
}