public String autenticacaoUsuario( Permissao permissaoAute, PerfilUsuarioOrgao perfilUsuarioOrgao) { permissaoAtual = listaPermissao.get(listaPermissao.indexOf(permissaoAute)); // Confere se o mesmo contém permissão para algum orgão if (!permissaoAtual.getPerfilUsuarioOrgaos().isEmpty()) { if (authenticationService.login(usuario)) { if (listaPermissao != null && !listaPermissao.isEmpty()) { setPermissoes(listaPermissao); // Verefica se as permissoes do usuário é mais que 1..então. idPermissaoAtual = permissaoAtual.getId(); // modelMenu = MenuUtil.formarMenu(menuService.findByMenu(usuario.getCpf(), // permissaoAtual.getPerfil().getId())); setMenusAcesso( menuService.findByMenu(usuario.getCpf(), permissaoAtual.getPerfil().getId())); // BUSCA OS PERFILSUUSARIOORGAOPERMISSAO que o usuário tem acesso.. todos os orgãos. buscarPerfilUsuarioOrgaoPermissaoId(); // Quando for na hora de logar o sistema pegará sempre a primeira possição do vetor. if (perfilUsuarioOrgao == null) { orgaoPerfilAcesso = permissaoAtual.getPerfilUsuarioOrgaos().get(0).getOrgao(); } else { // orgaoPerfilAcesso = // permissaoAtual.getPerfilUsuarioOrgaos().get(permissaoAtual.getPerfilUsuarioOrgaos().indexOf(perfilUsuarioOrgao)).getOrgao(); orgaoPerfilAcesso = perfilUsuarioOrgao.getOrgao(); } // Atribui os valores na sessao orgaoDescricao = permissaoAtual.getLotadoOrgao(); regionalId = permissaoAtual.getLotadoRegional_id(); regionalDescricao = permissaoAtual.getRegional(); setorDescricao = permissaoAtual.getLotadoSetor(); setorId = permissaoAtual.getLotadoSetor_id(); setServidor(authenticationService.getUsuarioLogado().getCpf()); autenticado = true; return "/index?faces-redirect=true"; } else { MensagensController.addWarn("Nao contem permissao para o Usuário!"); return "login"; } } else { MensagensController.addWarn("Usuário ou Senha Inválidos!"); return "login"; } } else { logout(); MensagensController.addError("O usuário não contém nenhum Orgao atribuido!"); return "login"; } }
/** * Método usado para autenticar o usuário no sistema. Aqui o método utiliza o valor dos atributos * userCpf e password setados pelo usuário na página para tentar realizar a autenticação, que será * confirmada pela chamada do método login da instância de authenticationService. * * @return */ public String logar() { String retorno = ""; usuario = new Usuario(); usuario.setCpf(userCpf); usuario.setSenhahash(password); if (usuarioService.findByCpfSenha(usuario.getCpf(), usuario.getSenhahash())) { listaPermissao = permissaoService.findByUsuario(usuario); usuario.setPermissoes(listaPermissao); if (!listaPermissao.isEmpty()) { if (listaPermissao != null && listaPermissao.size() >= 2) { return "escolhaPerfil"; } else { idPermissaoAtual = listaPermissao.get(0).getId(); buscarPerfilUsuarioOrgaoPermissaoId(); if (listaPerfilUsuarioOrgaos.size() >= 2) { return "escolhaPerfil"; } else { retorno = autenticacaoUsuario(listaPermissao.get(0), null); } } } else { MensagensController.addError("O usuário não contém nenhum Orgao atribuido!"); } } else { MensagensController.addWarn("Usuário ou Senha Inválidos!"); return "login"; } return retorno; }