package br.com.centralit.citcorpore.negocio;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Collection;
import org.apache.commons.lang.StringUtils;
import br.com.centralit.citcorpore.bean.ADUserDTO;
import br.com.centralit.citcorpore.bean.EmpregadoDTO;
import br.com.centralit.citcorpore.bean.EmpresaDTO;
import br.com.centralit.citcorpore.bean.GrupoDTO;
import br.com.centralit.citcorpore.bean.GrupoEmpregadoDTO;
import br.com.centralit.citcorpore.bean.LoginDTO;
import br.com.centralit.citcorpore.bean.PerfilAcessoDTO;
import br.com.centralit.citcorpore.bean.PerfilAcessoGrupoDTO;
import br.com.centralit.citcorpore.bean.PerfilAcessoUsuarioDTO;
import br.com.centralit.citcorpore.bean.UnidadeDTO;
import br.com.centralit.citcorpore.bean.UsuarioDTO;
import br.com.centralit.citcorpore.integracao.EmpregadoDao;
import br.com.centralit.citcorpore.integracao.EmpresaDao;
import br.com.centralit.citcorpore.integracao.GrupoDao;
import br.com.centralit.citcorpore.integracao.GrupoEmpregadoDao;
import br.com.centralit.citcorpore.integracao.ParametroCorporeDAO;
import br.com.centralit.citcorpore.integracao.PerfilAcessoDao;
import br.com.centralit.citcorpore.integracao.PerfilAcessoGrupoDao;
import br.com.centralit.citcorpore.integracao.PerfilAcessoUsuarioDAO;
import br.com.centralit.citcorpore.integracao.UnidadeDao;
import br.com.centralit.citcorpore.integracao.UsuarioDao;
import br.com.centralit.citcorpore.integracao.ad.LDAPUtils;
import br.com.centralit.citcorpore.util.CriptoUtils;
import br.com.centralit.citcorpore.util.Enumerados.ParametroSistema;
import br.com.centralit.citcorpore.util.ParametroUtil;
import br.com.citframework.dto.IDto;
import br.com.citframework.excecao.LogicException;
import br.com.citframework.excecao.ServiceException;
import br.com.citframework.integracao.TransactionControler;
import br.com.citframework.integracao.TransactionControlerImpl;
import br.com.citframework.service.CrudServiceImpl;
import br.com.citframework.service.ServiceLocator;
import br.com.citframework.util.UtilDatas;
/**
* @author Centralit
*
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public class UsuarioServiceEjb extends CrudServiceImpl implements UsuarioService {
/** Bean de PerfilAcesso. */
private UsuarioDTO usuarioBean;
private UsuarioDao dao;
@Override
protected UsuarioDao getDao() {
if (dao == null) {
dao = new UsuarioDao();
}
return dao;
}
/**
* Cria usu�rio e perfil acesso.
*
* @see br.com.citframework.service.CrudServiceImpl#create(br.com.citframework.dto.IDto)
*/
@Override
public IDto create(final IDto model) throws ServiceException, LogicException {
this.setUsuarioBean(model);
final TransactionControler transaction = new TransactionControlerImpl(this.getDao().getAliasDB());
try {
this.validaCreate(this.getUsuarioBean());
this.getDao().setTransactionControler(transaction);
this.getGrupoempregadoDao().setTransactionControler(transaction);
transaction.start();
this.setUsuarioBean(this.getDao().create(this.getUsuarioBean()));
this.criarPerfilAcessoUsuario(this.getUsuarioBean(), transaction);
if (this.getUsuarioBean().getColGrupoEmpregado() != null) {
this.getGrupoempregadoDao().deleteByIdEmpregado(this.getUsuarioBean().getIdEmpregado());
for (final GrupoEmpregadoDTO grupoempregadoDTO : this.getUsuarioBean().getColGrupoEmpregado()) {
grupoempregadoDTO.setIdEmpregado(this.getUsuarioBean().getIdEmpregado());
grupoempregadoDTO.setIdGrupo(grupoempregadoDTO.getIdGrupo());
this.getGrupoempregadoDao().create(grupoempregadoDTO);
}
}
transaction.commit();
transaction.close();
} catch (final Exception e) {
e.printStackTrace();
this.rollbackTransaction(transaction, e);
}
return this.getUsuarioBean();
}
@Override
public IDto createFirs(final IDto model) throws ServiceException, LogicException {
final UsuarioDTO usrDto = (UsuarioDTO) model;
final PerfilAcessoUsuarioDTO perfilAcDTO = new PerfilAcessoUsuarioDTO();
final EmpregadoDTO empregadoDTO = new EmpregadoDTO();
GrupoDTO grupoDTO = new GrupoDTO();
final UnidadeDTO unidadeDTO = new UnidadeDTO();
EmpresaDTO empresaDTO = new EmpresaDTO();
PerfilAcessoDTO perfilAcessoDTO = new PerfilAcessoDTO();
final PerfilAcessoGrupoDTO perfilAcessoGrupoDTO = new PerfilAcessoGrupoDTO();
final TransactionControler transaction = new TransactionControlerImpl(this.getDao().getAliasDB());
final PerfilAcessoUsuarioDAO perfilAcDao = new PerfilAcessoUsuarioDAO();
final PerfilAcessoGrupoDao perfilAcessoGrupoDao = new PerfilAcessoGrupoDao();
final EmpregadoDao empregadoDao = new EmpregadoDao();
final GrupoDao grupoDao = new GrupoDao();
final UnidadeDao uniDao = new UnidadeDao();
final ParametroCorporeDAO paramDao = new ParametroCorporeDAO();
final EmpresaDao empresaDao = new EmpresaDao();
final PerfilAcessoDao perfilAcessoDao = new PerfilAcessoDao();
try {
this.getDao().setTransactionControler(transaction);
perfilAcDao.setTransactionControler(transaction);
perfilAcessoGrupoDao.setTransactionControler(transaction);
empregadoDao.setTransactionControler(transaction);
grupoDao.setTransactionControler(transaction);
uniDao.setTransactionControler(transaction);
empresaDao.setTransactionControler(transaction);
perfilAcessoDao.setTransactionControler(transaction);
paramDao.setTransactionControler(transaction);
transaction.start();
perfilAcessoDTO.setDataInicio(UtilDatas.getDataAtual());
perfilAcessoDTO.setNomePerfilAcesso("Administrador");
perfilAcessoDTO = (PerfilAcessoDTO) perfilAcessoDao.create(perfilAcessoDTO);
empresaDTO.setDataInicio(UtilDatas.getDataAtual());
empresaDTO.setDetalhamento("");
empresaDTO.setNomeEmpresa("CENTRAL IT");
empresaDTO = (EmpresaDTO) empresaDao.create(empresaDTO);
grupoDTO.setDataInicio(UtilDatas.getDataAtual());
grupoDTO.setDescricao("");
grupoDTO.setIdEmpresa(empresaDTO.getIdEmpresa());
grupoDTO.setNome("Desenvolvimento");
grupoDTO.setIdPerfilAcessoGrupo(perfilAcessoDTO.getIdPerfilAcesso());
grupoDTO = (GrupoDTO) grupoDao.create(grupoDTO);
perfilAcessoGrupoDTO.setIdGrupo(grupoDTO.getIdGrupo());
perfilAcessoGrupoDTO.setIdPerfilAcessoGrupo(grupoDTO.getIdPerfilAcessoGrupo());
perfilAcessoGrupoDTO.setDataInicio(grupoDTO.getDataInicio());
perfilAcessoGrupoDao.create(perfilAcessoGrupoDTO);
unidadeDTO.setDataInicio(UtilDatas.getDataAtual());
unidadeDTO.setDescricao("");
unidadeDTO.setEmail("");
unidadeDTO.setIdEmpresa(empresaDTO.getIdEmpresa());
unidadeDTO.setIdGrupo(grupoDTO.getIdGrupo());
unidadeDTO.setNome("Desenvolvimento");
uniDao.create(unidadeDTO);
empregadoDTO.setDataAdmissao(UtilDatas.getDataAtual());
empregadoDTO.setTipo("A");
empregadoDTO.setSexo("M");
empregadoDTO.setDataNascimento(UtilDatas.getDataAtual());
empregadoDTO.setIdGrupo(grupoDTO.getIdGrupo());
empregadoDTO.setIdUnidade(unidadeDTO.getIdUnidade());
empregadoDTO.setNome("Administrador");
empregadoDTO.setNomeProcura("Administrador");
empregadoDTO.setIdSituacaoFuncional(1);
empregadoDao.create(empregadoDTO);
this.getParametroSmartService().criarParametrosNovos();
usrDto.setIdEmpregado(empregadoDTO.getIdEmpregado());
usrDto.setIdEmpresa(empresaDTO.getIdEmpresa());
usrDto.setIdGrupo(grupoDTO.getIdGrupo());
usrDto.setIdUnidade(unidadeDTO.getIdUnidade());
this.getDao().create(usrDto);
perfilAcDTO.setDataInicio(UtilDatas.getDataAtual());
perfilAcDTO.setIdUsuario(usrDto.getIdUsuario());
perfilAcDTO.setIdPerfilAcesso(perfilAcessoDTO.getIdPerfilAcesso());
perfilAcDao.create(perfilAcDTO);
transaction.commit();
transaction.close();
} catch (final Exception e) {
e.printStackTrace();
this.rollbackTransaction(transaction, e);
}
return usrDto;
}
@Override
public void updateNotNull(final IDto dto) {
try {
this.validaUpdate(dto);
this.getDao().updateNotNull(dto);
} catch (final ServiceException e) {
e.printStackTrace();
} catch (final Exception e) {
e.printStackTrace();
}
}
/**
* Cria ou atualiza perfil de acesso do usu�rio.
*
* @param transaction
* @param perfilAcessoUsuarioDao
* @param perfilAcessoUsuario
* @throws Exception
*/
private void criarPerfilAcessoUsuario(final UsuarioDTO usuario, final TransactionControler transaction) throws Exception {
PerfilAcessoUsuarioDTO perfilAcessoUsuario;
final PerfilAcessoUsuarioDAO perfilAcessoUserDao = new PerfilAcessoUsuarioDAO();
perfilAcessoUserDao.setTransactionControler(transaction);
final Integer idPerfilAcessoUsuarioSelecionado = usuario.getIdPerfilAcessoUsuario();
if (usuario.getIdUsuario() != null) {
perfilAcessoUsuario = perfilAcessoUserDao.obterPerfilAcessoUsuario(usuario);
if (perfilAcessoUsuario == null) {
if (idPerfilAcessoUsuarioSelecionado != null) {
perfilAcessoUsuario = new PerfilAcessoUsuarioDTO();
perfilAcessoUsuario.setIdUsuario(usuario.getIdUsuario());
perfilAcessoUsuario.setDataInicio(UtilDatas.getDataAtual());
perfilAcessoUsuario.setIdPerfilAcesso(idPerfilAcessoUsuarioSelecionado);
perfilAcessoUserDao.create(perfilAcessoUsuario);
}
} else {
if (idPerfilAcessoUsuarioSelecionado == null) {
perfilAcessoUserDao.delete(perfilAcessoUsuario);
} else {
perfilAcessoUsuario.setIdPerfilAcesso(idPerfilAcessoUsuarioSelecionado);
perfilAcessoUserDao.update(perfilAcessoUsuario);
}
}
} else {
perfilAcessoUsuario = new PerfilAcessoUsuarioDTO();
perfilAcessoUsuario.setIdPerfilAcesso(usuario.getIdPerfilAcessoUsuario());
perfilAcessoUsuario.setIdUsuario(this.getUsuarioBean().getIdUsuario());
perfilAcessoUsuario.setDataInicio(UtilDatas.getDataAtual());
perfilAcessoUserDao.create(perfilAcessoUsuario);
}
}
@Override
public void delete(final IDto model) throws ServiceException, LogicException {
this.setUsuarioBean(model);
final TransactionControler transaction = new TransactionControlerImpl(this.getDao().getAliasDB());
try {
final PerfilAcessoUsuarioDAO perfilAcessoUsuarioDao = new PerfilAcessoUsuarioDAO();
final GrupoEmpregadoDao grupoempregadoDao = new GrupoEmpregadoDao();
this.getDao().setTransactionControler(transaction);
perfilAcessoUsuarioDao.setTransactionControler(transaction);
grupoempregadoDao.setTransactionControler(transaction);
final PerfilAcessoUsuarioDTO perfilAcessoUsuario = new PerfilAcessoUsuarioDTO();
transaction.start();
this.getUsuarioBean().setStatus("I");
this.getDao().update(this.getUsuarioBean());
if (this.getUsuarioBean().getIdPerfilAcessoUsuario() != null) {
perfilAcessoUsuario.setIdUsuario(this.getUsuarioBean().getIdUsuario());
perfilAcessoUsuarioDao.delete(perfilAcessoUsuario);
}
grupoempregadoDao.deleteByIdEmpregado(this.getUsuarioBean().getIdEmpregado());
transaction.commit();
transaction.close();
} catch (final Exception e) {
e.printStackTrace();
this.rollbackTransaction(transaction, e);
}
}
@Override
public void update(final IDto usuarioDto) throws ServiceException, LogicException {
final UsuarioDTO usuarioSelecionado = (UsuarioDTO) usuarioDto;
final UsuarioDao usuarioDao = new UsuarioDao();
final PerfilAcessoUsuarioDAO perfilAcessoUsuarioDao = new PerfilAcessoUsuarioDAO();
final GrupoEmpregadoDao grupoEmpregadoDao = new GrupoEmpregadoDao();
final TransactionControler transaction = new TransactionControlerImpl(usuarioDao.getAliasDB());
try {
this.validaUpdate(usuarioSelecionado);
usuarioDao.setTransactionControler(transaction);
perfilAcessoUsuarioDao.setTransactionControler(transaction);
grupoEmpregadoDao.setTransactionControler(transaction);
transaction.start();
usuarioDao.updateNotNull(usuarioSelecionado);
PerfilAcessoUsuarioDTO perfilAcessoUsuario;
final Integer idPerfilAcessoUsuarioSelecionado = usuarioSelecionado.getIdPerfilAcessoUsuario();
perfilAcessoUsuario = perfilAcessoUsuarioDao.obterPerfilAcessoUsuario(usuarioSelecionado);
if (perfilAcessoUsuario == null) {
if (idPerfilAcessoUsuarioSelecionado != null) {
perfilAcessoUsuario = new PerfilAcessoUsuarioDTO();
perfilAcessoUsuario.setIdUsuario(usuarioSelecionado.getIdUsuario());
perfilAcessoUsuario.setDataInicio(UtilDatas.getDataAtual());
perfilAcessoUsuario.setIdPerfilAcesso(idPerfilAcessoUsuarioSelecionado);
perfilAcessoUsuarioDao.create(perfilAcessoUsuario);
}
} else {
if (idPerfilAcessoUsuarioSelecionado == null) {
perfilAcessoUsuarioDao.delete(perfilAcessoUsuario);
} else {
perfilAcessoUsuario.setIdPerfilAcesso(idPerfilAcessoUsuarioSelecionado);
perfilAcessoUsuarioDao.update(perfilAcessoUsuario);
}
}
if (usuarioSelecionado.getColGrupoEmpregado() != null) {
grupoEmpregadoDao.deleteByIdEmpregado(usuarioSelecionado.getIdEmpregado());
for (final GrupoEmpregadoDTO grupoempregadoDto : usuarioSelecionado.getColGrupoEmpregado()) {
grupoempregadoDto.setIdEmpregado(usuarioSelecionado.getIdEmpregado());
grupoempregadoDto.setIdGrupo(grupoempregadoDto.getIdGrupo());
grupoEmpregadoDao.create(grupoempregadoDto);
}
}
transaction.commit();
transaction.close();
} catch (final Exception e) {
e.printStackTrace();
this.rollbackTransaction(transaction, e);
}
}
@Override
protected void validaCreate(final Object arg0) throws Exception {
final UsuarioDTO usuarioDTO = (UsuarioDTO) arg0;
this.setPerfilAcessoUsuarioDefault(usuarioDTO);
}
private void setPerfilAcessoUsuarioDefault(final UsuarioDTO usuarioDTO) throws ServiceException, Exception {
if (usuarioDTO.getIdPerfilAcessoUsuario() != null) {
return;
}
try {
final String idPerfilAcessoDefault = ParametroUtil.getValorParametroCitSmartHashMap(ParametroSistema.ID_PERFIL_ACESSO_DEFAULT, null);
if (idPerfilAcessoDefault != null) {
usuarioDTO.setIdPerfilAcessoUsuario(Integer.parseInt(idPerfilAcessoDefault.trim()));
}
} catch (final NumberFormatException e) {
System.out.println("Par�metro de perfil default n�o definido.");
}
}
@Override
protected void validaUpdate(final Object arg0) throws Exception {
final UsuarioDTO usuarioDTO = (UsuarioDTO) arg0;
this.setPerfilAcessoUsuarioDefault(usuarioDTO);
}
@Override
public UsuarioDTO restoreByLogin(final String login) throws ServiceException, LogicException {
try {
return this.getDao().restoreByLogin(login);
} catch (final Exception e) {
throw new ServiceException(e);
}
}
@Override
public UsuarioDTO restoreByLogin(final String login, final String senha) throws ServiceException, LogicException {
try {
return this.getDao().restoreByLoginSenha(login, senha);
} catch (final Exception e) {
throw new ServiceException(e);
}
}
@Override
public UsuarioDTO restoreByIdEmpregado(final Integer idEmpregado) throws ServiceException, Exception {
return this.getDao().restoreByIdEmpregado(idEmpregado);
}
@Override
public void deleteByIdEmpregado(final Integer idEmpregado) throws ServiceException, Exception {
final UsuarioDTO usuario = this.restoreByIdEmpregado(idEmpregado);
if (usuario != null) {
usuario.setStatus("I");
}
this.update(usuario);
}
/**
* @return valor do atributo usuarioBean.
*/
public UsuarioDTO getUsuarioBean() {
return usuarioBean;
}
/**
* Configura Bean de PerfilAcesso.
*
* @param baseItemConfiguracaoBean
* @author valdoilo.damasceno
*/
private void setUsuarioBean(final IDto usuarioBean) {
this.usuarioBean = (UsuarioDTO) usuarioBean;
}
@Override
public UsuarioDTO listStatus(final UsuarioDTO obj) throws Exception {
try {
return this.getDao().listStatus(obj);
} catch (final Exception e) {
throw new ServiceException(e);
}
}
@Override
public UsuarioDTO listLogin(final UsuarioDTO obj) throws Exception {
try {
return this.getDao().listLogin(obj);
} catch (final Exception e) {
throw new ServiceException(e);
}
}
@Override
public UsuarioDTO listUsuarioExistente(final UsuarioDTO obj) throws Exception {
try {
return this.getDao().listUsuarioExistente(obj);
} catch (final Exception e) {
throw new ServiceException(e);
}
}
private ParametroCorporeService parametroCorporeService;
private ParametroCorporeService getParametroSmartService() throws Exception {
if (parametroCorporeService == null) {
parametroCorporeService = (ParametroCorporeService) ServiceLocator.getInstance().getService(ParametroCorporeService.class, null);
}
return parametroCorporeService;
}
@Override
public void sincronizaUsuarioAD(final ADUserDTO usuarioAd, final LoginDTO login, final Boolean isImport) throws ServiceException, Exception {
final UsuarioDao usuarioDao = new UsuarioDao();
final EmpregadoDao empregadoDao = new EmpregadoDao();
final PerfilAcessoUsuarioDAO perfilAcessoUsuarioDao = new PerfilAcessoUsuarioDAO();
final GrupoEmpregadoDao grupoEmpregadoDao = new GrupoEmpregadoDao();
final TransactionControler transaction = new TransactionControlerImpl(this.getDao().getAliasDB());
try {
usuarioDao.setTransactionControler(transaction);
empregadoDao.setTransactionControler(transaction);
perfilAcessoUsuarioDao.setTransactionControler(transaction);
grupoEmpregadoDao.setTransactionControler(transaction);
transaction.start();
if (usuarioAd != null) {
UsuarioDTO novoUsuarioDoAD = new UsuarioDTO();
novoUsuarioDoAD.setLogin(login.getUser());
novoUsuarioDoAD.setSenha(login.getSenha());
final UsuarioDTO usuarioAux = usuarioDao.restoreByLogin(novoUsuarioDoAD.getLogin());
novoUsuarioDoAD = usuarioAux == null ? new UsuarioDTO() : usuarioAux;
novoUsuarioDoAD.setStatus(usuarioAd.getUserAccountControl() == "514" ? "I" : "A");
if (isImport != null && isImport) {
novoUsuarioDoAD.setLdap("N");
} else {
novoUsuarioDoAD.setLdap("S");
}
String algoritmo = br.com.citframework.util.Constantes.getValue("ALGORITMO_CRIPTOGRAFIA_SENHA");
if (algoritmo == null || !algoritmo.trim().equalsIgnoreCase("")) {
algoritmo = "SHA-1";
}
novoUsuarioDoAD.setSenha(CriptoUtils.generateHash(login.getSenha(), algoritmo));
novoUsuarioDoAD.setLogin(login.getUser());
final String parametroLDAP_SN_LAST_NAME = ParametroUtil.getValorParametroCitSmartHashMap(ParametroSistema.LDAP_SN_LAST_NAME, "N").trim();
String PARAMETRO_LDAP_ATRIBUTO = null;
if (usuarioAd != null && usuarioAd.getLdapAtributo() != null && usuarioAd.getLdapAtributo().equalsIgnoreCase("")) {
PARAMETRO_LDAP_ATRIBUTO = usuarioAd.getLdapAtributo();
} else {
PARAMETRO_LDAP_ATRIBUTO = ParametroUtil.getValorParametroCitSmartHashMap(ParametroSistema.LDAP_ATRIBUTO, "CN").trim();
}
if (parametroLDAP_SN_LAST_NAME != null && parametroLDAP_SN_LAST_NAME.equalsIgnoreCase("S") && (PARAMETRO_LDAP_ATRIBUTO == null || StringUtils.isEmpty(PARAMETRO_LDAP_ATRIBUTO.trim()))) {
PARAMETRO_LDAP_ATRIBUTO = "SN";
if (PARAMETRO_LDAP_ATRIBUTO != null && !StringUtils.isEmpty(PARAMETRO_LDAP_ATRIBUTO.trim())) {
final String[] atributosRetorno = LDAPUtils.getADFieldList();
final int numeroRegistros = atributosRetorno.length;
novoUsuarioDoAD.setNomeUsuario(this.obterNomeUsuario(usuarioAd, numeroRegistros, PARAMETRO_LDAP_ATRIBUTO).trim());
}
} else {
if (PARAMETRO_LDAP_ATRIBUTO != null && !StringUtils.isEmpty(PARAMETRO_LDAP_ATRIBUTO.trim())) {
final String[] atributosRetorno = LDAPUtils.getADFieldList();
final int numeroRegistros = atributosRetorno.length;
novoUsuarioDoAD.setNomeUsuario(this.obterNomeUsuario(usuarioAd, numeroRegistros, PARAMETRO_LDAP_ATRIBUTO).trim());
}
}
EmpregadoDTO empregadoDTO = new EmpregadoDTO();
if (novoUsuarioDoAD.getIdEmpregado() != null && novoUsuarioDoAD.getIdEmpregado() != 0) {
empregadoDTO.setIdEmpregado(novoUsuarioDoAD.getIdEmpregado());
empregadoDTO = (EmpregadoDTO) empregadoDao.restore(empregadoDTO);
if (empregadoDTO == null) {
empregadoDTO = new EmpregadoDTO();
}
if (empregadoDTO.getDataFim() != null) {
empregadoDTO.setDataFim(null);
}
} else if (novoUsuarioDoAD.getNomeUsuario() != null) {
final UsuarioDTO usuario = usuarioDao.restoreByNomeUsuario(novoUsuarioDoAD.getNomeUsuario());
if (usuario != null && usuario.getIdEmpregado() != null && usuario.getIdEmpregado() != 0) {
empregadoDTO.setIdEmpregado(usuario.getIdEmpregado());
empregadoDTO = (EmpregadoDTO) empregadoDao.restore(empregadoDTO);
if (empregadoDTO == null) {
empregadoDTO = new EmpregadoDTO();
}
if (empregadoDTO.getDataFim() != null) {
empregadoDTO.setDataFim(null);
}
}
}
if (empregadoDTO.getTelefone() == null) {
empregadoDTO.setTelefone(LDAPUtils.nullToNaoDisponivel(usuarioAd.getTelephoneNumber()));
} else {
if (empregadoDTO.getTelefone().equals("N�o dispon�vel")) {
empregadoDTO.setTelefone(LDAPUtils.nullToNaoDisponivel(usuarioAd.getTelephoneNumber()));
}
}
if (empregadoDTO.getEmail() == null) {
if (usuarioAd.getMail() != null) {
empregadoDTO.setEmail(LDAPUtils.nullToNaoDisponivel(usuarioAd.getMail().trim()));
}
} else {
if (usuarioAd.getMail() != null) {
empregadoDTO.setEmail(LDAPUtils.nullToNaoDisponivel(usuarioAd.getMail().trim()));
}
}
if (empregadoDTO.getNome() == null) {
empregadoDTO.setNome(LDAPUtils.nullToNaoDisponivel(novoUsuarioDoAD.getNomeUsuario()));
} else {
if (empregadoDTO.getNome().equals("N�o dispon�vel")) {
empregadoDTO.setNome(LDAPUtils.nullToNaoDisponivel(novoUsuarioDoAD.getNomeUsuario()));
}
}
if (empregadoDTO.getNomeProcura() == null) {
empregadoDTO.setNomeProcura(LDAPUtils.nullToNaoDisponivel(novoUsuarioDoAD.getNomeUsuario()));
} else {
if (empregadoDTO.getNomeProcura().equals("N�o dispon�vel")) {
empregadoDTO.setNomeProcura(LDAPUtils.nullToNaoDisponivel(novoUsuarioDoAD.getNomeUsuario()));
}
}
if (empregadoDTO.getIdSituacaoFuncional() == null) {
empregadoDTO.setIdSituacaoFuncional(usuarioAd.getUserAccountControl() == "514" ? 2 : 1);
}
Integer idGrupoPadrao = null;
if (usuarioAd.getIdGrupo() != null && !usuarioAd.getIdGrupo().equalsIgnoreCase("")) {
idGrupoPadrao = new Integer(usuarioAd.getIdGrupo());
} else {
idGrupoPadrao = this.obterIdGrupoPadrao();
}
if (empregadoDTO.getIdEmpregado() != null) {
final Collection gruposEmpregado = grupoEmpregadoDao.findAtivosByIdEmpregado(empregadoDTO.getIdEmpregado());
if ((gruposEmpregado == null || gruposEmpregado.isEmpty()) && idGrupoPadrao != null) {
final GrupoEmpregadoDTO grupoEmpregadoDto = new GrupoEmpregadoDTO();
grupoEmpregadoDto.setIdEmpregado(empregadoDTO.getIdEmpregado());
grupoEmpregadoDto.setIdGrupo(idGrupoPadrao);
grupoEmpregadoDao.create(grupoEmpregadoDto);
}
empregadoDao.update(empregadoDTO);
} else {
empregadoDao.create(empregadoDTO);
if (idGrupoPadrao != null) {
final GrupoEmpregadoDTO grupoEmpregadoDto = new GrupoEmpregadoDTO();
grupoEmpregadoDto.setIdEmpregado(empregadoDTO.getIdEmpregado());
grupoEmpregadoDto.setIdGrupo(idGrupoPadrao);
grupoEmpregadoDao.create(grupoEmpregadoDto);
}
}
novoUsuarioDoAD.setIdEmpresa(1);
novoUsuarioDoAD.setIdEmpregado(empregadoDTO.getIdEmpregado());
if (novoUsuarioDoAD.getIdUsuario() != null) {
novoUsuarioDoAD.setIdPerfilAcessoUsuario(this.getIdPerfilAcessoUsuario(novoUsuarioDoAD.getIdUsuario()));
this.update(novoUsuarioDoAD);
perfilAcessoUsuarioDao.reativaPerfisUsuario(novoUsuarioDoAD.getIdUsuario());
} else {
novoUsuarioDoAD = (UsuarioDTO) usuarioDao.create(novoUsuarioDoAD);
}
}
transaction.commit();
transaction.close();
} catch (final Exception e) {
e.printStackTrace();
this.rollbackTransaction(transaction, e);
}
}
@Override
public synchronized void sincronizaUsuarioAD(final ADUserDTO usuarioAd, final Integer idGrupoSolicitante) throws ServiceException, Exception {
final UsuarioDao usuarioDao = new UsuarioDao();
final EmpregadoDao empregadoDao = new EmpregadoDao();
final GrupoEmpregadoDao grupoEmpregadoDao = new GrupoEmpregadoDao();
final GrupoDao grupoDao = new GrupoDao();
final TransactionControler transaction = new TransactionControlerImpl(this.getDao().getAliasDB());
if (usuarioAd != null && usuarioAd.getsAMAccountName() != null && (!usuarioAd.getsAMAccountName().equalsIgnoreCase("admin") || !usuarioAd.getsAMAccountName().equalsIgnoreCase("consultor"))) {
try {
usuarioDao.setTransactionControler(transaction);
empregadoDao.setTransactionControler(transaction);
grupoEmpregadoDao.setTransactionControler(transaction);
transaction.start();
final UsuarioDTO usuarioAux = usuarioDao.restoreByLogin(usuarioAd.getsAMAccountName());
UsuarioDTO novoUsuarioDoAD = usuarioAux == null ? new UsuarioDTO() : usuarioAux;
if (novoUsuarioDoAD.getSenha() == null) {
novoUsuarioDoAD.setSenha("");
}
String algoritmo = br.com.citframework.util.Constantes.getValue("ALGORITMO_CRIPTOGRAFIA_SENHA");
if (algoritmo == null || !algoritmo.trim().equalsIgnoreCase("")) {
algoritmo = "SHA-1";
}
novoUsuarioDoAD.setSenha(CriptoUtils.generateHash(novoUsuarioDoAD.getSenha(), algoritmo));
novoUsuarioDoAD.setStatus(usuarioAd.getUserAccountControl() == "514" ? "I" : "A");
novoUsuarioDoAD.setLdap("S");
novoUsuarioDoAD.setLogin(usuarioAd.getsAMAccountName());
String PARAMETRO_LDAP_ATRIBUTO = "";
if (usuarioAd.getLdapAtributo() != null && !usuarioAd.getLdapAtributo().equalsIgnoreCase("")) {
PARAMETRO_LDAP_ATRIBUTO = usuarioAd.getLdapAtributo();
} else {
PARAMETRO_LDAP_ATRIBUTO = ParametroUtil.getValorParametroCitSmartHashMap(ParametroSistema.LDAP_ATRIBUTO, "CN").trim();
}
if (PARAMETRO_LDAP_ATRIBUTO != null && !StringUtils.isEmpty(PARAMETRO_LDAP_ATRIBUTO.trim())) {
final String[] atributosRetorno = LDAPUtils.getADFieldList();
final int numeroRegistros = atributosRetorno.length;
novoUsuarioDoAD.setNomeUsuario(this.obterNomeUsuario(usuarioAd, numeroRegistros, PARAMETRO_LDAP_ATRIBUTO).trim());
}
EmpregadoDTO empregadoDTO = new EmpregadoDTO();
if (novoUsuarioDoAD.getIdEmpregado() != null && novoUsuarioDoAD.getIdEmpregado() != 0) {
empregadoDTO.setIdEmpregado(novoUsuarioDoAD.getIdEmpregado());
empregadoDTO = (EmpregadoDTO) empregadoDao.restore(empregadoDTO);
if (empregadoDTO.getDataFim() != null) {
empregadoDTO.setDataFim(null);
}
}
else if (novoUsuarioDoAD.getNomeUsuario() != null) {
final UsuarioDTO usuario = usuarioDao.restoreByNomeUsuario(novoUsuarioDoAD.getNomeUsuario());
if (usuario != null && usuario.getIdEmpregado() != null && usuario.getIdEmpregado() != 0) {
empregadoDTO.setIdEmpregado(usuario.getIdEmpregado());
empregadoDTO = (EmpregadoDTO) empregadoDao.restore(empregadoDTO);
if (empregadoDTO == null) {
empregadoDTO = new EmpregadoDTO();
}
if (empregadoDTO.getDataFim() != null) {
empregadoDTO.setDataFim(null);
}
}
}
if (empregadoDTO.getTelefone() == null) {
empregadoDTO.setTelefone(LDAPUtils.nullToNaoDisponivel(usuarioAd.getTelephoneNumber()));
} else {
if (empregadoDTO.getTelefone().equals("N�o dispon�vel")) {
empregadoDTO.setTelefone(LDAPUtils.nullToNaoDisponivel(usuarioAd.getTelephoneNumber()));
}
}
if (empregadoDTO.getEmail() == null) {
empregadoDTO.setEmail(LDAPUtils.nullToNaoDisponivel(usuarioAd.getMail()));
} else {
if (empregadoDTO.getEmail().equals("N�o dispon�vel")) {
empregadoDTO.setEmail(LDAPUtils.nullToNaoDisponivel(usuarioAd.getMail()));
}
}
empregadoDTO.setEmail(empregadoDTO.getEmail().trim().toLowerCase()); // Caixa baixa para todos os emails, pois em algum servidores o envio n�o acontece
if (empregadoDTO.getNome() == null) {
empregadoDTO.setNome(LDAPUtils.nullToNaoDisponivel(novoUsuarioDoAD.getNomeUsuario()));
} else {
if (empregadoDTO.getNome().equals("N�o dispon�vel") || !empregadoDTO.getNome().equalsIgnoreCase(novoUsuarioDoAD.getNomeUsuario())) {
empregadoDTO.setNome(LDAPUtils.nullToNaoDisponivel(novoUsuarioDoAD.getNomeUsuario()));
}
}
empregadoDTO.setNome(empregadoDTO.getNome().trim()); // Removendo os spa�os no nome do usu�rio
if (empregadoDTO.getNomeProcura() == null) {
empregadoDTO.setNomeProcura(LDAPUtils.nullToNaoDisponivel(novoUsuarioDoAD.getNomeUsuario()));
} else {
if (empregadoDTO.getNomeProcura().equals("N�o dispon�vel")) {
empregadoDTO.setNomeProcura(LDAPUtils.nullToNaoDisponivel(novoUsuarioDoAD.getNomeUsuario()));
}
}
if (empregadoDTO.getIdSituacaoFuncional() == null) {
empregadoDTO.setIdSituacaoFuncional(usuarioAd.getUserAccountControl() == "514" ? 2 : 1);
}
Integer idGrupoPadrao;
if (idGrupoSolicitante != null && idGrupoSolicitante != 0) {
idGrupoPadrao = idGrupoSolicitante;
} else {
if (usuarioAd.getIdGrupo() != null && !usuarioAd.getIdGrupo().equalsIgnoreCase("")) {
idGrupoPadrao = new Integer(usuarioAd.getIdGrupo());
} else {
idGrupoPadrao = this.obterIdGrupoPadrao();
}
}
if (empregadoDTO.getIdEmpregado() != null) {
final Collection gruposEmpregado = grupoEmpregadoDao.findAtivosByIdEmpregado(empregadoDTO.getIdEmpregado());
if ((gruposEmpregado == null || gruposEmpregado.isEmpty()) && idGrupoPadrao != null) {
// Verifica se J� tem o grupo padr�o mesmo deletado sen�o d� erro de chave duplicada
final Collection colPadrao = grupoEmpregadoDao.findEmpregado(idGrupoPadrao, empregadoDTO.getIdEmpregado());
if (colPadrao == null || colPadrao.isEmpty()) {
final GrupoEmpregadoDTO grupoEmpregadoDto = new GrupoEmpregadoDTO();
grupoEmpregadoDto.setIdEmpregado(empregadoDTO.getIdEmpregado());
grupoEmpregadoDto.setIdGrupo(idGrupoPadrao);
grupoEmpregadoDao.create(grupoEmpregadoDto);
}
}
empregadoDao.updateNotNull(empregadoDTO);
} else {
empregadoDao.create(empregadoDTO);
if (idGrupoPadrao != null) {
GrupoDTO grupoPadrao = new GrupoDTO();
grupoPadrao.setIdGrupo(idGrupoPadrao);
grupoPadrao = (GrupoDTO) grupoDao.restore(grupoPadrao);
if (grupoPadrao.getDataFim() == null) {
final GrupoEmpregadoDTO grupoEmpregadoDto = new GrupoEmpregadoDTO();
grupoEmpregadoDto.setIdEmpregado(empregadoDTO.getIdEmpregado());
grupoEmpregadoDto.setIdGrupo(grupoPadrao.getIdGrupo());
grupoEmpregadoDao.create(grupoEmpregadoDto);
}
}
}
novoUsuarioDoAD.setIdEmpresa(1);
final String parametroMETODO_AUTENTICACAO_Pasta = ParametroUtil.getValorParametroCitSmartHashMap(ParametroSistema.METODO_AUTENTICACAO_Pasta, "2").trim();
novoUsuarioDoAD.setIdEmpregado(empregadoDTO.getIdEmpregado());
if (parametroMETODO_AUTENTICACAO_Pasta != null && parametroMETODO_AUTENTICACAO_Pasta.trim().equalsIgnoreCase("1")) {
if (novoUsuarioDoAD.getIdUsuario() == null) {
novoUsuarioDoAD.setStatus("I");
novoUsuarioDoAD = (UsuarioDTO) usuarioDao.create(novoUsuarioDoAD);
}
} else {
if (novoUsuarioDoAD.getIdUsuario() != null) {
usuarioDao.updateNotNull(novoUsuarioDoAD);
} else {
novoUsuarioDoAD = (UsuarioDTO) usuarioDao.create(novoUsuarioDoAD);
}
}
transaction.commit();
transaction.close();
} catch (final Exception e) {
e.printStackTrace();
this.rollbackTransaction(transaction, e);
}
}
}
private Integer obterIdGrupoPadrao() throws NumberFormatException, Exception {
final ParametroCorporeService parametroService = (ParametroCorporeService) ServiceLocator.getInstance().getService(ParametroCorporeService.class, null);
final String grupoPadrao = ParametroUtil.getValorParametroCitSmartHashMap(ParametroSistema.ID_GRUPO_PADRAO_LDAP, "");
if (grupoPadrao.indexOf(";") > 0) {
return Integer.parseInt(grupoPadrao.split(";")[0]);
}
Integer idGrupoPadrao = null;
if (grupoPadrao != null && !StringUtils.isBlank(grupoPadrao.trim())) {
idGrupoPadrao = Integer.parseInt(parametroService.getParamentroAtivo(45).getValor().trim());
}
return idGrupoPadrao;
}
private Integer getIdPerfilAcessoUsuario(final Integer idUsuario) throws ServiceException, Exception {
final PerfilAcessoUsuarioService perfilAcessoService = (PerfilAcessoUsuarioService) ServiceLocator.getInstance().getService(PerfilAcessoUsuarioService.class, null);
PerfilAcessoUsuarioDTO perfilAcessoDTO = new PerfilAcessoUsuarioDTO();
perfilAcessoDTO.setIdUsuario(idUsuario);
perfilAcessoDTO = perfilAcessoService.listByIdUsuario(perfilAcessoDTO);
if (perfilAcessoDTO == null) {
return null;
}
return perfilAcessoDTO.getIdPerfilAcesso();
}
@Override
public UsuarioDTO restoreByIdEmpregadosDeUsuarios(final Integer idEmpregado) throws Exception {
final UsuarioDao usuarioDao = new UsuarioDao();
return usuarioDao.restoreByIdEmpregadosDeUsuarios(idEmpregado);
}
/**
* Verifica se usu�rio informado � um usu�rio do AD.
*
* @param usuarioDto
* @return true - Usu�rio do AD; false - Usu�rio cadastrado pelo sistema.
* @throws Exception
*/
@Override
public boolean usuarioIsAD(UsuarioDTO usuarioDto) throws Exception {
if (usuarioDto != null && usuarioDto.getIdUsuario() != null) {
final UsuarioDao usuarioDao = new UsuarioDao();
usuarioDto = (UsuarioDTO) usuarioDao.restore(usuarioDto);
if (usuarioDto.getLdap() != null && usuarioDto.getLdap().equalsIgnoreCase("s")) {
return true;
}
return false;
}
return false;
}
@Override
public UsuarioDTO restoreByID(final Integer id) throws ServiceException, LogicException {
try {
return this.getDao().restoreByID(id);
} catch (final Exception e) {
throw new ServiceException(e);
}
}
@Override
public void gerarCarga(final File arquivo) throws IOException {
final BufferedReader arquivoReader = new BufferedReader(new InputStreamReader(new FileInputStream(arquivo), "WINDOWS-1252"));
boolean primeiraLinha = true;
int contador = 0;
while (arquivoReader.ready()) {
final LoginDTO login = new LoginDTO();
final ADUserDTO usuarioAd = new ADUserDTO();
final String linhaAux = arquivoReader.readLine();
String linha = null;
if (linhaAux != null) {
linha = new String(linhaAux);
linha = linha.trim();
}
String[] linhaQuebrada = null;
if (linha != null) {
linhaQuebrada = linha.split("\n");
}
if (linhaQuebrada != null && linhaQuebrada.length > 0) {
for (final String string : linhaQuebrada) {
final String[] colunasArray = string.split(";");
if (colunasArray.length > 0) {
// T�TULO
if (primeiraLinha) {
primeiraLinha = false;
break;
}
int numeroDaColuna = 0;
String sufixoEmail = "";
for (final String conteudoDaCelula : colunasArray) {
if (conteudoDaCelula != null && !StringUtils.isEmpty(conteudoDaCelula)) {
// USERNAME
if (numeroDaColuna == 0) {
usuarioAd.setSN(conteudoDaCelula);
usuarioAd.setDisplayName(conteudoDaCelula);
usuarioAd.setCN(conteudoDaCelula);
numeroDaColuna++;
continue;
}
// SUFIXO
if (numeroDaColuna == 1) {
sufixoEmail = conteudoDaCelula;
numeroDaColuna++;
continue;
}
// LOGIN
if (numeroDaColuna == 2) {
login.setUser(conteudoDaCelula.trim());
login.setSenha("");
usuarioAd.setsAMAccountName(conteudoDaCelula.trim());
if (usuarioAd.getsAMAccountName() != null && !StringUtils.isEmpty(usuarioAd.getsAMAccountName())) {
usuarioAd.setMail(login.getUser().trim() + sufixoEmail.trim());
usuarioAd.setMailNickname(usuarioAd.getsAMAccountName().trim());
}
numeroDaColuna++;
}
}
try {
this.sincronizaUsuarioAD(usuarioAd, login, Boolean.TRUE);
contador++;
System.out.println(">>> SUCESSO NA GRAVA��O >> Usu�rio >> " + contador + " >>> " + usuarioAd.getSN() + "Login: >> " + login.getUser());
} catch (final ServiceException e) {
System.out.println(">>> ERROR >> Erro ao gravar o usu�rio >>> " + usuarioAd.getSN());
e.printStackTrace();
} catch (final Exception e) {
System.out.println(">>> ERROR >> Erro ao gravar o usu�rio >>> " + usuarioAd.getSN());
e.printStackTrace();
}
}
}
}
}
}
arquivoReader.close();
}
/**
* Obtem Nome do Usu�rio de acordo com o Par�metro LDAP_ATRIBUTO.
*
* @param usuarioAd
* @param numeroRegistros
* @param ldapAtributo
* @return String
* @author Vadoilo Damasceno
*/
private String obterNomeUsuario(final ADUserDTO usuarioAd, final Integer numeroRegistros, final String ldapAtributo) {
if (numeroRegistros > 0) {
for (int i = 0; i <= numeroRegistros; i++) {
if (ldapAtributo.equalsIgnoreCase("CN")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getCN());
}
if (ldapAtributo.equalsIgnoreCase("description")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getDescription());
}
if (ldapAtributo.equalsIgnoreCase("displayName")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getDisplayName());
}
if (ldapAtributo.equalsIgnoreCase("DN")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getDN());
}
if (ldapAtributo.equalsIgnoreCase("givenName")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getGivenName());
}
if (ldapAtributo.equalsIgnoreCase("homeDrive")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getHomeDrive());
}
if (ldapAtributo.equalsIgnoreCase("name")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getName());
}
if (ldapAtributo.equalsIgnoreCase("objectCategory")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getObjectCategory());
}
if (ldapAtributo.equalsIgnoreCase("objectClass")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getObjectClass());
}
if (ldapAtributo.equalsIgnoreCase("physicalDeliveryOfficeName")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getPhysicalDeliveryOfficeName());
}
if (ldapAtributo.equalsIgnoreCase("profilePath")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getProfilePath());
}
if (ldapAtributo.equalsIgnoreCase("sAMAccountName")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getsAMAccountName());
}
if (ldapAtributo.equalsIgnoreCase("SN")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getSN());
}
if (ldapAtributo.equalsIgnoreCase("userAccountControl")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getUserAccountControl());
}
if (ldapAtributo.equalsIgnoreCase("userPrincipalName")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getUserPrincipalName());
}
if (ldapAtributo.equalsIgnoreCase("homeMDB")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getHomeMDB());
}
if (ldapAtributo.equalsIgnoreCase("legacyExchangeDN")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getLegacyExchangeDN());
}
if (ldapAtributo.equalsIgnoreCase("mail")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getMail());
}
if (ldapAtributo.equalsIgnoreCase("mAPIRecipient")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getmAPIRecipient());
}
if (ldapAtributo.equalsIgnoreCase("mailNickname")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getMailNickname());
}
if (ldapAtributo.equalsIgnoreCase("c")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getC());
}
if (ldapAtributo.equalsIgnoreCase("company")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getCompany());
}
if (ldapAtributo.equalsIgnoreCase("department")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getDepartment());
}
if (ldapAtributo.equalsIgnoreCase("homephone")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getHomephone());
}
if (ldapAtributo.equalsIgnoreCase("l")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getL());
}
if (ldapAtributo.equalsIgnoreCase("location")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getLocation());
}
if (ldapAtributo.equalsIgnoreCase("manager")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getManager());
}
if (ldapAtributo.equalsIgnoreCase("mobile")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getMobile());
}
if (ldapAtributo.equalsIgnoreCase("OU")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getOU());
}
if (ldapAtributo.equalsIgnoreCase("postalCode")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getPostalCode());
}
if (ldapAtributo.equalsIgnoreCase("st")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getSt());
}
if (ldapAtributo.equalsIgnoreCase("streetAddress")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getStreetAddress());
}
if (ldapAtributo.equalsIgnoreCase("telephoneNumber")) {
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getTelephoneNumber());
}
}
}
return LDAPUtils.nullToNaoDisponivel(usuarioAd.getsAMAccountName());
}
@Override
public boolean listSeVazio() throws Exception {
final UsuarioDao usuarioDao = new UsuarioDao();
return usuarioDao.listSeVazio();
}
@Override
public Collection listAtivos() throws Exception {
final UsuarioDao usuarioDao = new UsuarioDao();
return usuarioDao.listAtivos();
}
@Override
public IDto restore(final IDto model) throws ServiceException, LogicException {
UsuarioDTO usuarioDto = (UsuarioDTO) model;
try {
usuarioDto = (UsuarioDTO) this.getDao().restore(model);
if(usuarioDto != null)
usuarioDto.setColGrupoEmpregado(this.getGrupoempregadoDao().findByIdEmpregadoNome(usuarioDto.getIdEmpregado()));
} catch (final Exception e) {
e.printStackTrace();
throw new ServiceException(e);
}
return usuarioDto;
}
@Override
public Long retornaQuantidadeUsuariosAtivos() throws Exception {
return this.getDao().retornaQuantidadeUsuariosAtivos();
}
/**
* Consulta os usuarios pelo campo nome
*
* @param nome
* @return
* @throws Exception
*/
@Override
public Collection<UsuarioDTO> consultarUsuarioPorNomeAutoComplete(final String nome) throws Exception {
try {
return this.getDao().consultarUsuarioPorNomeAutoComplete(nome);
} catch (final Exception e) {
throw new ServiceException(e);
}
}
private GrupoEmpregadoDao grupoempregadoDao;
private GrupoEmpregadoDao getGrupoempregadoDao() {
if (grupoempregadoDao == null) {
grupoempregadoDao = new GrupoEmpregadoDao();
}
return grupoempregadoDao;
}
}