package gcom.gui.seguranca.acesso; 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.Usuario; import gcom.util.filtro.ParametroSimples; import gcom.util.filtro.ParametroSimplesDiferenteDe; 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; /** * Atualiza os dados do grupo e seus acessos relacionados * * @author Pedro Alexandre * @date 03/07/2006 */ public class AtualizarGrupoAction extends GcomAction { /** * <Breve descri��o sobre o caso de uso> * * [UC0279] - Manter Grupo * * @author Pedro Alexandre * @date 03/07/2006 * * @param actionMapping * @param actionForm * @param httpServletRequest * @param httpServletResponse * @return */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { //Seta o mapeamento de retorno para a tela de sucesso ActionForward retorno = actionMapping.findForward("telaSucesso"); //Cria uma inst�ncia da sess�o HttpSession sessao = httpServletRequest.getSession(false); //Recupera o grupo da sess�o Grupo grupo = (Grupo) sessao.getAttribute("grupo"); //Recupera os acessos do grupo da sess�o Collection grupoFuncionalidades = (Collection) sessao.getAttribute("grupoFuncionalidades"); //[FS0002] - Verificar preenchimento dos campos if(grupo.getDescricao() == null){ throw new ActionServletException("atencao.naoinformado",null, "Descri��o do Grupo"); } //[FS0002] - Verificar preenchimento dos campos if(grupo.getDescricaoAbreviada() == null){ throw new ActionServletException("atencao.naoinformado",null, "Descri��o Abreviada do Grupo"); } //[FS002] - Verificar preenchimento dos campos if (grupo.getIndicadorSuperintendencia() == null){ throw new ActionServletException("atencao.naoinformado",null, "Indicador de Superintend�ncia"); } //[FS0006] - Verificar exist�ncia da descri��o FiltroGrupo filtroGrupo = new FiltroGrupo(); filtroGrupo.adicionarParametro(new ParametroSimplesDiferenteDe(FiltroGrupo.ID,grupo.getId())); filtroGrupo.adicionarParametro(new ParametroSimples(FiltroGrupo.DESCRICAO, grupo.getDescricao())); Collection colecaoGrupo = Fachada.getInstancia().pesquisar(filtroGrupo, Grupo.class.getSimpleName()); if (colecaoGrupo != null && !colecaoGrupo.isEmpty()) { throw new ActionServletException("atencao.grupo.descricao_ja_existe",null,grupo.getDescricao()); } Usuario usuarioLogado = (Usuario) sessao.getAttribute("usuarioLogado"); //Chama o met�do para atualizar o grupo Fachada.getInstancia().atualizarGrupo(grupo,grupoFuncionalidades,usuarioLogado); //Monta a tela de sucesso if (retorno.getName().equalsIgnoreCase("telaSucesso")) { montarPaginaSucesso(httpServletRequest, "Grupo "+grupo.getDescricao()+" atualizado com sucesso.", "Manter outro grupo", "exibirManterGrupoAction.do?menu=sim"); } //Limpa a sess�o sessao.removeAttribute("grupo"); sessao.removeAttribute("grupoFuncionalidades"); //Retorna o mapeamento contido na vari�vel "retorno" return retorno; } }