• Home
  • Java
  • Obtener detalles de usuario – JHipster

Obtener detalles de usuario – JHipster

Hola buenas a todos, hoy les quiero compartir algo que sirve, y mucho, a la hora de manejar datos de un usuario  que hizo login en nuestra aplicación jhipster. Lo que nos permite trabajar con esos datos y agregar mas lógica a alguna funcionalidad que necesitemos.

Así que veamos cómo puedes obtener los detalles del usuario en caso de que el usuario inicie sesión.

Tenemos dos formas de acceder a datos de un usuario logeado, una forma es llamar a “SecurityUtils.getCurrentUserLogin();”, esta es un útil que nos proporciona jhipster, esta seria la primera forma de obtener datos del usuario, por ejemplo en el siguiente código vemos una forma de usarlo.

public EmpresaDTO save(EmpresaDTO empresaDTO) {
log.debug("Request to save Empresa : {}", empresaDTO);
Empresa empresa = empresaMapper.toEntity(empresaDTO);
User user = new User();
Optional<String> us = SecurityUtils.getCurrentUserLogin();
user = this.userRepository.findOneByLogin(us.get()).get();
empresa.setUser(user);
empresa = empresaRepository.save(empresa);
EmpresaDTO result = empresaMapper.toDto(empresa);
empresaSearchRepository.save(empresa);
return result;
}

Como veremos seria una forma de obtener solo el nombre de usuario “login” para buscarlo en la base de datos y luego usar ese usuario y settearlo en un atributo de la entidad Empresa que se relacione con el usuario.

Otra forma es agregar a nuestro servicio el import de “UserService”

private final UserService userService;
public EmpresaServiceImpl(EmpresaRepository empresaRepository, UserService userService) {
this.empresaRepository = empresaRepository;
this.userService = userService;
}

Luego en el método que nos haga falta podríamos hacer lo siguiente:

userService.getUserWithAuthorities().get().fieldName();

Podremos obtener los datos, atributos, del usuario:

User Id : userService.getUserWithAuthorities().get().getId();
First Name : userService.getUserWithAuthorities().get().getFirstName();
Last Name: userService.getUserWithAuthorities().get().getLastName();
For Email : userService.getUserWithAuthorities().get().getEmail();
For Username(login) : userService.getUserWithAuthorities().get().getlogin();

De esta forma podremos obtener cualquier atributo correspondiente al usuario y poder trabajar con ellos y agregar mas lógica a algunos métodos que nos haga falta usar datos del usuario.

Por ejemplo obtener el email del usuario para luego enviar algún informe:

String userEmail = userService.getUserWithAuthorities().get().getEmail();

Ambas formas son correctas y pueden elegir las que les quede mas cómodo.

Espero les sea de utilidad este articulo. Saludos.

LEAVE YOUR COMMENTS