package gcom.gui.seguranca.acesso.usuario; import java.util.Collection; import java.util.List; import gcom.cadastro.unidade.FiltroUnidadeOrganizacional; import gcom.cadastro.unidade.UnidadeOrganizacional; import gcom.fachada.Fachada; import gcom.gui.GcomAction; import gcom.seguranca.acesso.PermissaoEspecial; import gcom.seguranca.acesso.usuario.FiltroPemissaoEspecial; import gcom.seguranca.acesso.usuario.FiltroUsuario; import gcom.seguranca.acesso.usuario.Usuario; import gcom.util.filtro.ParametroNaoNulo; import gcom.util.filtro.ParametroSimples; 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; /** * [UC1115] Incluir Permiss�o Especial por Unidade Organizacional * * @author Mariana Victor * @date 29/12/2010 * */ public class ExibirIncluirPermissaoEspecialAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("incluirPermissaoEspecial"); HttpSession sessao = httpServletRequest.getSession(false); Fachada fachada = Fachada.getInstancia(); IncluirPermissaoEspecialActionForm form = (IncluirPermissaoEspecialActionForm) actionForm; // Pesquisar Unidade Organizacional if((httpServletRequest.getParameter("menu") == null || !httpServletRequest.getParameter("menu").equals("")) && form.getIdUnidade() != null && !form.getIdUnidade().equals("")) { FiltroUnidadeOrganizacional filtroUnidadeEmpresa = new FiltroUnidadeOrganizacional(); filtroUnidadeEmpresa.adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacional.ID, form.getIdUnidade())); Collection<UnidadeOrganizacional> unidadeEmpresaEncontrada = fachada.pesquisar(filtroUnidadeEmpresa, UnidadeOrganizacional.class.getName()); if (unidadeEmpresaEncontrada != null && !unidadeEmpresaEncontrada.isEmpty()) { UnidadeOrganizacional unidadeOrganizacional = (UnidadeOrganizacional) ((List) unidadeEmpresaEncontrada).get(0); //a unidade de Unidade Empresa foi encontrado form.setIdUnidade("" + unidadeOrganizacional.getId()); form .setNomeUnidade(unidadeOrganizacional.getDescricao()); httpServletRequest.setAttribute("idUnidadeEmpresaNaoEncontrada", "true"); httpServletRequest.setAttribute("nomeCampo", "idUnidade"); FiltroUsuario filtroUsuario = new FiltroUsuario(); filtroUsuario.adicionarParametro(new ParametroSimples( FiltroUsuario.UNIDADE_ORGANIZACIONAL_ID, unidadeOrganizacional.getId())); filtroUsuario.adicionarParametro(new ParametroNaoNulo( FiltroUsuario.FUNCIONARIO)); filtroUsuario.adicionarCaminhoParaCarregamentoEntidade( FiltroUsuario.FUNCIONARIO); Collection<Usuario> colecaoUsuario = fachada.pesquisar(filtroUsuario, Usuario.class.getName()); if (colecaoUsuario != null && !colecaoUsuario.isEmpty()) { sessao.setAttribute("colecaoUsuario", colecaoUsuario); } else { sessao.removeAttribute("colecaoUsuario"); } FiltroPemissaoEspecial filtroPemissaoEspecial = new FiltroPemissaoEspecial(); filtroPemissaoEspecial.setCampoOrderBy( FiltroPemissaoEspecial.DESCRICAO); Collection colecaoPermissaoEspecial = fachada.pesquisar( filtroPemissaoEspecial, PermissaoEspecial.class.getName());; if (colecaoPermissaoEspecial != null && !colecaoPermissaoEspecial.isEmpty()) { sessao.setAttribute("colecaoPermissaoEspecial", colecaoPermissaoEspecial); } else { sessao.removeAttribute("colecaoPermissaoEspecial"); } } else { form.setIdUnidade(""); httpServletRequest.setAttribute("idUnidadeEmpresaNaoEncontrada", "exception"); form.setNomeUnidade("Unidade Organizacional inexistente"); httpServletRequest.setAttribute("nomeCampo", "idUnidade"); sessao.removeAttribute("colecaoUsuario"); sessao.removeAttribute("colecaoPermissaoEspecial"); } } else { sessao.removeAttribute("colecaoUsuario"); sessao.removeAttribute("colecaoPermissaoEspecial"); } return retorno; } }