package gcom.gui.seguranca.acesso.usuario;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.seguranca.acesso.usuario.FiltroUsuario;
import gcom.seguranca.acesso.usuario.FiltroUsuarioSituacao;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.seguranca.acesso.usuario.UsuarioSituacao;
import gcom.util.ControladorException;
import gcom.util.filtro.ComparacaoTexto;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
import java.util.Iterator;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
* Descri��o da classe
*
* @author R�mulo Aur�lio
* @date 08/06/2006
*/
public class ExibirBloquearDesbloquearAcessoUsuarioAction extends GcomAction {
/**
* Este caso de uso permite bloquear ou desbloquear o acesso do usu�rio ao
* sistema.
*
* [UC0291] Bloquear/Desbloquear Acesso
*
*
* @author R�mulo Aur�lio
* @date 08/06/2006
*
* @param actionMapping
* @param actionForm
* @param httpServletRequest
* @param httpServletResponse
* @return
* @throws ControladorException
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse)
throws ControladorException {
ActionForward retorno = actionMapping
.findForward("bloquearDesbloquearAcessoUsuario");
Fachada fachada = Fachada.getInstancia();
BloquearDesbloquearAcessoUsuarioActionForm bloquearDesbloquearAcessoUsuarioActionForm = (BloquearDesbloquearAcessoUsuarioActionForm) actionForm;
FiltroUsuarioSituacao filtroUsuarioSituacao = new FiltroUsuarioSituacao();
filtroUsuarioSituacao.adicionarParametro(new ParametroSimples(FiltroUsuarioSituacao.INDICADOR_DE_USO_SISTEMA, "2"));
// Verifica se os dados foram informados da tabela existem e joga numa
// colecao
Collection<UsuarioSituacao> colecaoUsuarioSituacao = fachada.pesquisar(
filtroUsuarioSituacao, UsuarioSituacao.class.getName());
if (colecaoUsuarioSituacao == null || colecaoUsuarioSituacao.isEmpty()) {
throw new ActionServletException(
"atencao.entidade_sem_dados_para_selecao", null,
"Tabela Usu�rio Situa��o");
}
httpServletRequest.setAttribute("colecaoUsuarioSituacao",
colecaoUsuarioSituacao);
Usuario usuario = new Usuario();
String login = bloquearDesbloquearAcessoUsuarioActionForm
.getLogin();
if (login != null && !login.equals("")) {
FiltroUsuario filtroUsuario = new FiltroUsuario();
filtroUsuario.adicionarParametro(new ComparacaoTexto(
FiltroUsuario.LOGIN, login));
Collection colecaoUsuario = fachada.pesquisar(filtroUsuario, Usuario.class.getName());
if (colecaoUsuario == null || colecaoUsuario.isEmpty()) {
throw new ActionServletException("atencao.login_nao_existente",
null, "" + login + "");
} else {
Iterator colecaoUsuarioIterator = colecaoUsuario.iterator();
while( colecaoUsuarioIterator.hasNext() ){
usuario = (Usuario) colecaoUsuarioIterator.next();
if ( usuario.getLogin().equalsIgnoreCase(login) ) {
bloquearDesbloquearAcessoUsuarioActionForm
.setUsuarioSituacao(usuario.getUsuarioSituacao()
.getId().toString());
}
}
}
}
return retorno;
}
}