br.com.hslife.orcamento.component.UsuarioComponent.java Source code

Java tutorial

Introduction

Here is the source code for br.com.hslife.orcamento.component.UsuarioComponent.java

Source

/***
      
 Copyright (c) 2012 - 2020 Hrcules S. S. Jos
    
Este arquivo  parte do programa Oramento Domstico.
    
    
Oramento Domstico  um software livre; voc pode redistribui-lo e/ou 
    
modific-lo dentro dos termos da Licena Pblica Geral Menor GNU como 
    
publicada pela Fundao do Software Livre (FSF); na verso 2.1 da 
    
Licena.
    
    
Este programa  distribudo na esperana que possa ser til, 
    
mas SEM NENHUMA GARANTIA; sem uma garantia implcita de ADEQUAO a 
    
qualquer MERCADO ou APLICAO EM PARTICULAR. Veja a Licena Pblica 
    
Geral Menor GNU em portugus para maiores detalhes.
    
    
Voc deve ter recebido uma cpia da Licena Pblica Geral Menor GNU sob o 
    
nome de "LICENSE.TXT" junto com este programa, se no, acesse o site do
    
projeto no endereco https://github.com/herculeshssj/orcamento ou escreva 
    
para a Fundao do Software Livre(FSF) Inc., 51 Franklin St, Fifth Floor, 
    
Boston, MA  02110-1301, USA.
    
    
Para mais informaes sobre o programa Oramento Domstico e seu autor entre  
    
em contato pelo e-mail herculeshssj@outlook.com, ou ainda escreva para 
    
Hrcules S. S. Jos, Av. Ministro Lafaeyte de Andrade, 1683 - Bl. 3 Apt 404, 
    
Marco II - Nova Iguau, RJ, Brasil.
      
***/

package br.com.hslife.orcamento.component;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.User;
import org.springframework.stereotype.Component;

import br.com.hslife.orcamento.entity.Moeda;
import br.com.hslife.orcamento.entity.Usuario;
import br.com.hslife.orcamento.facade.IMoeda;
import br.com.hslife.orcamento.facade.IUsuario;

@Component
public class UsuarioComponent {

    private static final Logger logger = LogManager.getLogger(UsuarioComponent.class);

    @Autowired
    private IUsuario usuarioService;

    @Autowired
    private IMoeda moedaService;

    private IUsuario getService() {
        return this.usuarioService;
    }

    public IMoeda getMoedaService() {
        return moedaService;
    }

    public Usuario getUsuarioLogado() {
        try {
            String login = "";
            SecurityContext context = SecurityContextHolder.getContext();
            if (context instanceof SecurityContext) {
                Authentication authentication = context.getAuthentication();
                if (authentication instanceof Authentication) {
                    login = ((User) authentication.getPrincipal()).getUsername();
                }
            }
            return getService().buscarPorLogin(login);
        } catch (Throwable t) {
            logger.catching(t);
            throw new RuntimeException(t);
        }
    }

    /**
     * Inicializa uma moeda padro para o usurio recm cadastrado
     */
    public void initializeMoedaPadrao(Usuario usuario) {
        Moeda moedaPadrao = new Moeda();
        moedaPadrao.setCodigoMonetario("BRL");
        moedaPadrao.setNome("Real");
        moedaPadrao.setPadrao(true);
        moedaPadrao.setPais("Brasil");
        moedaPadrao.setSiglaPais("BR");
        moedaPadrao.setSimboloMonetario("R$");
        moedaPadrao.setUsuario(usuario);
        getMoedaService().cadastrar(moedaPadrao);
    }
}