package gcom.gui.seguranca.acesso.usuario;
import java.util.Collection;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.seguranca.acesso.usuario.FiltroUsuario;
import gcom.seguranca.acesso.usuario.FiltroUsuarioGrupo;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.seguranca.acesso.usuario.UsuarioGrupo;
import gcom.util.Util;
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;
/**
* Processa a remo��o do crit�rio cobran�a
*
* @author S�vio Luiz
* @created03/04/2006
*/
public class RemoverUsuarioAction extends GcomAction {
/**
* @author Vivianne Sousa
* @date 03/04/2006
*
* @param actionMapping
* @param actionForm
* @param httpServletRequest
* @param httpServletResponse
* @return
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ExcluirUsuarioActionForm excluirUsuarioActionForm = (ExcluirUsuarioActionForm) actionForm;
Fachada fachada = Fachada.getInstancia();
HttpSession sessao = httpServletRequest.getSession(false);
FiltroUsuarioGrupo filtroUsuarioGrupo = new FiltroUsuarioGrupo();
//Verifica se o filtro foi informado pela p�gina de filtragem de
// cobranca crit�rio
if (sessao.getAttribute("filtroUsuarioGrupo") != null) {
filtroUsuarioGrupo = (FiltroUsuarioGrupo) sessao
.getAttribute("filtroUsuarioGrupo");
}
Collection colecaoUsuarioGrupo = fachada.pesquisar( filtroUsuarioGrupo, UsuarioGrupo.class.getName() );
UsuarioGrupo usuarioGrupo = (UsuarioGrupo) Util.retonarObjetoDeColecao(colecaoUsuarioGrupo);
FiltroUsuario filtroUsuario = new FiltroUsuario();
filtroUsuario.adicionarParametro( new ParametroSimples(FiltroUsuario.ID, usuarioGrupo.getUsuario().getId()));
filtroUsuario.adicionarCaminhoParaCarregamentoEntidade("unidadeOrganizacional");
filtroUsuario.adicionarCaminhoParaCarregamentoEntidade("unidadeOrganizacional.unidadeTipo");
filtroUsuario.adicionarCaminhoParaCarregamentoEntidade("funcionario.unidadeOrganizacional");
Collection colecaoUsuario = fachada.pesquisar(filtroUsuario, Usuario.class.getName());
Usuario usuario = (Usuario) Util.retonarObjetoDeColecao(colecaoUsuario);
String[] ids = excluirUsuarioActionForm.getIds();
ActionForward retorno = actionMapping.findForward("telaSucesso");
// mensagem de erro quando o usu�rio tenta excluir sem ter selecionado
// nenhum registro
if (ids == null || ids.length == 0) {
throw new ActionServletException(
"atencao.registros.nao_selecionados");
}
//Passa o usu�rio logado para registrar opera��o.
Usuario usuarioLogado = (Usuario) sessao.getAttribute("usuarioLogado");
fachada.removerUsuario(ids, usuario, usuarioLogado);
sessao.removeAttribute("indicadorAtualizar");
sessao.removeAttribute("voltar");
// Monta a p�gina de sucesso
if (retorno.getName().equalsIgnoreCase("telaSucesso")) {
montarPaginaSucesso(httpServletRequest,
"Usu�rio(s) removido(s) com sucesso",
"Realizar outra manuten��o de Usu�rio",
"exibirFiltrarUsuarioAction.do?menu=sim");
}
return retorno;
}
}