package gcom.gui.seguranca.acesso.usuario; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.gui.ManutencaoRegistroActionForm; import gcom.seguranca.acesso.usuario.FiltroSolicitacaoAcesso; import gcom.seguranca.acesso.usuario.FiltroSolicitacaoAcessoGrupo; import gcom.seguranca.acesso.usuario.SolicitacaoAcesso; import gcom.seguranca.acesso.usuario.SolicitacaoAcessoGrupo; import gcom.util.filtro.ParametroSimples; import gcom.util.filtro.ParametroSimplesIn; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; 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; /** * [UC1093] Manter Solicita��o de Acesso. * * @author Hugo Leonardo * @date 17/11/2010 */ public class RemoverSolicitacaoAcessoAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o retorno ActionForward retorno = actionMapping.findForward("telaSucesso"); // Obt�m a inst�ncia da fachada Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); ManutencaoRegistroActionForm manutencaoRegistroActionForm = (ManutencaoRegistroActionForm) actionForm; String[] ids = manutencaoRegistroActionForm.getIdRegistrosRemocao(); // mensagem de erro quando o usu�rio tenta Atualizar sem ter selecionado // nenhum registro if (ids == null || ids.length == 0) { throw new ActionServletException( "atencao.registros.nao_selecionados"); } FiltroSolicitacaoAcesso filtroSolicitacaoAcesso = new FiltroSolicitacaoAcesso(); Collection idsSolicitacaoAcesso = new ArrayList(ids.length); for (int i = 0; i < ids.length; i++) { idsSolicitacaoAcesso.add(new Integer(ids[i])); } filtroSolicitacaoAcesso.adicionarParametro( new ParametroSimplesIn(FiltroSolicitacaoAcesso.ID, idsSolicitacaoAcesso)); Collection coletionSolicitacaoAcesso = fachada.pesquisar(filtroSolicitacaoAcesso, SolicitacaoAcesso.class.getName()); Iterator itera = coletionSolicitacaoAcesso.iterator(); while(itera.hasNext()){ SolicitacaoAcesso solicitacaoAcesso = (SolicitacaoAcesso) itera.next(); // Grupos FiltroSolicitacaoAcessoGrupo filtroSolicitacaoAcessoGrupo = new FiltroSolicitacaoAcessoGrupo(); filtroSolicitacaoAcessoGrupo.setConsultaSemLimites(true); filtroSolicitacaoAcessoGrupo.adicionarCaminhoParaCarregamentoEntidade( FiltroSolicitacaoAcessoGrupo.GRUPO); filtroSolicitacaoAcessoGrupo.adicionarParametro(new ParametroSimples( FiltroSolicitacaoAcessoGrupo.SOLICITACAO_ACESSO_ID, solicitacaoAcesso.getId()) ); Collection colecaoSolicitacaoAcessoGrupo = Fachada.getInstancia().pesquisar(filtroSolicitacaoAcessoGrupo, SolicitacaoAcessoGrupo.class.getName()); if (colecaoSolicitacaoAcessoGrupo != null && !colecaoSolicitacaoAcessoGrupo.isEmpty()) { Iterator iterator = colecaoSolicitacaoAcessoGrupo.iterator(); SolicitacaoAcessoGrupo solicitacaoAcessoGrupo = null; while (iterator.hasNext()) { solicitacaoAcessoGrupo = (SolicitacaoAcessoGrupo) iterator.next(); // Remover todos os Grupos da solicita��o de acesso fachada.remover(solicitacaoAcessoGrupo); } } // Remover a solicita��o de acesso. fachada.remover(solicitacaoAcesso); } Integer idQt = ids.length; if(sessao.getAttribute("objeto") != null){ String objeto = (String) sessao.getAttribute("objeto"); if(objeto.equals("atualizar")){ montarPaginaSucesso(httpServletRequest, idQt.toString() + " Solicita��o(�es) de Acesso(s) Removido(s) com sucesso.", "Manter outra Solicita��o de Acesso", "exibirFiltrarSolicitacaoAcessoAction.do?menu=sim&objeto=atualizar"); }else if(objeto.equals("autorizar")){ montarPaginaSucesso(httpServletRequest, idQt.toString() + " Solicita��o(�es) de Acesso(s) Removido(s) com sucesso.", "Manter outra Solicita��o de Acesso", "exibirFiltrarSolicitacaoAcessoAction.do?menu=sim&objeto=autorizar"); }else if(objeto.equals("cadastrar")){ montarPaginaSucesso(httpServletRequest, idQt.toString() + " Solicita��o(�es) de Acesso(s) Removido(s) com sucesso.", "Manter outra Solicita��o de Acesso", "exibirFiltrarSolicitacaoAcessoAction.do?menu=sim&objeto=cadastrar"); } } return retorno; } }