package gcom.gui.seguranca.acesso.usuario; import gcom.cadastro.localidade.FiltroGerenciaRegional; import gcom.cadastro.localidade.FiltroLocalidade; import gcom.cadastro.localidade.FiltroUnidadeNegocio; import gcom.cadastro.localidade.GerenciaRegional; import gcom.cadastro.localidade.Localidade; import gcom.cadastro.localidade.UnidadeNegocio; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.seguranca.acesso.FiltroGrupo; import gcom.seguranca.acesso.Grupo; import gcom.seguranca.acesso.usuario.FiltroUsuarioAbrangencia; import gcom.seguranca.acesso.usuario.FiltroUsuarioGrupo; import gcom.seguranca.acesso.usuario.Usuario; import gcom.seguranca.acesso.usuario.UsuarioAbrangencia; import gcom.seguranca.acesso.usuario.UsuarioGrupo; import gcom.util.ConstantesSistema; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; /** * Action que exibe o menu * * @author S�vio Luiz * @date 02/05/2006 */ public class ExibirInserirUsuarioAcessosUsuarioAction extends GcomAction { /** * < <Descri��o do m�todo>> * * @param actionMapping * Descri��o do par�metro * @param actionForm * Descri��o do par�metro * @param httpServletRequest * Descri��o do par�metro * @param httpServletResponse * Descri��o do par�metro * @return Descri��o do retorno */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping .findForward("inserirUsuarioAcessoUsuario"); InserirUsuarioDadosGeraisActionForm form = (InserirUsuarioDadosGeraisActionForm) actionForm; HttpSession sessao = httpServletRequest.getSession(false); String[] grupo = (String[]) sessao.getAttribute("grupo"); if (grupo != null) { form.setGrupo(grupo); } // Usuario que vai ser cadastrado no sistema, usado s� nessa // funcionalidade Usuario usuarioCadastrar = (Usuario) sessao .getAttribute("usuarioCadastrar"); // Usuario logado no sistema Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado"); // if(usuarioCadastrar.getIndicadorUsuarioBatch() != Short.parseShort("1") && usuarioCadastrar.getIndicadorUsuarioInternet() != Short.parseShort("1") ){ // throw new ActionServletException( // "atencao.required", null, // "Indicador para internet"); // } if (usuarioCadastrar != null) { if (form.getAbrangencia() == null || form.getAbrangencia().equals("")) { if (usuarioCadastrar.getUsuarioAbrangencia() != null && usuarioCadastrar.getUsuarioAbrangencia().getId() != null) form.setAbrangencia(usuarioCadastrar .getUsuarioAbrangencia().getId().toString()); } if (form.getGerenciaRegional() == null || form.getGerenciaRegional().equals("")) { if (usuarioCadastrar.getGerenciaRegional() != null && usuarioCadastrar.getGerenciaRegional().getId() != null) form.setGerenciaRegional(usuarioCadastrar .getGerenciaRegional().getId().toString()); } if (form.getIdElo() != null && !form.getIdElo().equals("") && (usuarioCadastrar.getLocalidadeElo() == null || (usuarioCadastrar .getLocalidadeElo() != null && usuarioCadastrar.getLocalidadeElo().getId() != null && !form .getIdElo().equals( usuarioCadastrar.getLocalidadeElo().getId() .toString())))) { FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.ID, form.getIdElo())); Collection coll = Fachada.getInstancia().pesquisar( filtroLocalidade, Localidade.class.getSimpleName()); if (coll != null && !coll.isEmpty()) { Localidade l = (Localidade) coll.iterator().next(); if (l.getLocalidade() != null && !l.getId().equals(l.getLocalidade().getId())) { throw new ActionServletException( "atencao.localidade.nao.elo"); } usuarioCadastrar.setLocalidadeElo(l); form.setIdElo(l.getId().toString()); form.setNomeElo(l.getDescricao()); form.setEloNaoEncontrada("false"); } else { usuarioCadastrar.setLocalidadeElo(null); form.setIdElo(""); form.setNomeElo("Elo inexistente."); form.setEloNaoEncontrada("true"); } } else { if (form.getIdElo() != null && !form.getIdElo().equals("")) { form.setIdElo(usuarioCadastrar.getLocalidadeElo().getId() .toString()); form.setNomeElo(usuarioCadastrar.getLocalidadeElo() .getDescricao()); form.setEloNaoEncontrada("false"); } } if (form.getIdLocalidade() != null && !form.getIdLocalidade().equals("") && (usuarioCadastrar.getLocalidade() == null || (usuarioCadastrar .getLocalidade() != null && usuarioCadastrar.getLocalidade().getId() != null && !form .getIdLocalidade().equals( usuarioCadastrar.getLocalidade().getId() .toString())))) { FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.ID, form.getIdLocalidade())); Collection coll = Fachada.getInstancia().pesquisar( filtroLocalidade, Localidade.class.getSimpleName()); if (coll != null && !coll.isEmpty()) { Localidade l = (Localidade) coll.iterator().next(); usuarioCadastrar.setLocalidade(l); form.setIdLocalidade(l.getId().toString()); // form.setIdElo("" + l.getLocalidade().getId()); // form.setIdElo(l.getLocalidade().getDescricao()); form.setNomeLocalidade(l.getDescricao()); form.setLocalidadeNaoEncontrada("false"); } else { usuarioCadastrar.setLocalidade(null); form.setIdLocalidade(""); form.setNomeLocalidade(" Localidade inexistente."); form.setLocalidadeNaoEncontrada("true"); } } else { if (form.getIdLocalidade() != null && !form.getIdLocalidade().equals("")) { form.setLocalidadeNaoEncontrada("false"); form.setIdLocalidade("" + usuarioCadastrar.getLocalidade().getId()); form.setNomeLocalidade(usuarioCadastrar.getLocalidade() .getDescricao()); } } } if (sessao.getAttribute("collUsuarioAbrangencia") == null || sessao.getAttribute("collUsuarioAbrangencia").equals("")) { Collection colecaoUsuarioAbrangencia = null; // caso o usu�rio que esteja efetuando a inser��o n�o // seja // do grupo de administradores FiltroUsuarioGrupo filtroUsuarioGrupo = new FiltroUsuarioGrupo(); filtroUsuarioGrupo.adicionarParametro(new ParametroSimples( FiltroUsuarioGrupo.USUARIO_ID, usuario.getId())); filtroUsuarioGrupo.adicionarParametro(new ParametroSimples( FiltroUsuarioGrupo.GRUPO_ID, Grupo.ADMINISTRADOR)); Collection colecaoUsuarioGrupo = Fachada.getInstancia().pesquisar( filtroUsuarioGrupo, UsuarioGrupo.class.getName()); if (colecaoUsuarioGrupo != null && !colecaoUsuarioGrupo.isEmpty()) { colecaoUsuarioAbrangencia = Fachada.getInstancia().pesquisar( new FiltroUsuarioAbrangencia(), UsuarioAbrangencia.class.getSimpleName()); } else { Integer idUsuarioAbrangencia = usuario.getUsuarioAbrangencia() .getId(); FiltroUsuarioAbrangencia filtroUsuarioAbrangencia = new FiltroUsuarioAbrangencia(); filtroUsuarioAbrangencia .adicionarParametro(new ParametroSimples( FiltroUsuarioAbrangencia.ID, idUsuarioAbrangencia)); colecaoUsuarioAbrangencia = Fachada.getInstancia().pesquisar( filtroUsuarioAbrangencia, UsuarioAbrangencia.class.getName()); // caso exista mais de uma abrang�ncia na pesquisa passando o id // da // abrang�ncia como superior boolean mesmoNivel = true; Collection usuarioAbrangenciaParaPesquisa = new ArrayList(); usuarioAbrangenciaParaPesquisa .addAll(colecaoUsuarioAbrangencia); while (mesmoNivel) { Collection colecaoUsuarioAbrangenciaPorSuperior = Fachada .getInstancia() .pesquisarUsuarioAbrangenciaPorSuperior( usuarioAbrangenciaParaPesquisa, idUsuarioAbrangencia); if (colecaoUsuarioAbrangenciaPorSuperior != null && !colecaoUsuarioAbrangenciaPorSuperior.isEmpty()) { colecaoUsuarioAbrangencia .addAll(colecaoUsuarioAbrangenciaPorSuperior); usuarioAbrangenciaParaPesquisa = new ArrayList(); usuarioAbrangenciaParaPesquisa .addAll(colecaoUsuarioAbrangenciaPorSuperior); } else { mesmoNivel = false; } } } // caso exista mais de uma abrang�ncia na pesquisa passando o id da // abrang�ncia como superior sessao.setAttribute("collUsuarioAbrangencia", colecaoUsuarioAbrangencia); Collection colecaoGrupo = null; // caso o usu�rio que esteja efetuando a inser��o n�o // seja // do grupo de administradores if (colecaoUsuarioGrupo != null && !colecaoUsuarioGrupo.isEmpty()) { FiltroGrupo filtroGrupo = new FiltroGrupo(); filtroGrupo.setCampoOrderBy(FiltroGrupo.DESCRICAO); filtroGrupo.adicionarParametro(new ParametroSimples( FiltroGrupo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); colecaoGrupo = Fachada.getInstancia().pesquisar( filtroGrupo, Grupo.class.getSimpleName()); } else { Collection colecaoGrupoUsuario = (Collection)sessao.getAttribute("colecaoGruposUsuario"); colecaoGrupo = Fachada.getInstancia().pesquisarGruposUsuarioAcesso( colecaoGrupoUsuario); } sessao.setAttribute("collGrupo", colecaoGrupo); } if (sessao.getAttribute("collGerenciaRegional") == null || sessao.getAttribute("collGerenciaRegional").equals("")) { FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional(); filtroGerenciaRegional.adicionarParametro(new ParametroSimples( FiltroGerenciaRegional.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoGerenciaRegional = Fachada.getInstancia() .pesquisar(filtroGerenciaRegional, GerenciaRegional.class.getSimpleName()); sessao.setAttribute("collGerenciaRegional", colecaoGerenciaRegional); } if (sessao.getAttribute("collUnidadeNegocio") == null || sessao.getAttribute("collUnidadeNegocio").equals("")) { FiltroUnidadeNegocio filtroUnidadeNegocio = new FiltroUnidadeNegocio(); filtroUnidadeNegocio.adicionarParametro(new ParametroSimples( FiltroUnidadeNegocio.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoUnidadeNegocio = Fachada.getInstancia() .pesquisar(filtroUnidadeNegocio, UnidadeNegocio.class.getSimpleName()); sessao.setAttribute("collUnidadeNegocio", colecaoUnidadeNegocio); } return retorno; } }