/**
   * Método usado ao escolher um perfil de usuário, para usuário que possuem permissões de perfis
   * diferentes.
   *
   * @return
   */
  public String escolhePerfil() {
    // boolean sucesso = authenticationService.login(userCpf, password);
    // boolean sucesso = authenticationService.login(usuario);
    // selecionar perfil atual

    for (Permissao pe : listaPermissao) {
      if (pe.getId().equals(idPermissaoAtual)) {
        return autenticacaoUsuario(
            pe, perfilUsuarioOrgaoService.findByPerfilUsuarioOrgaoId(perfilUsuarioOrgaoId));
      }
    }
    return "";
  }
  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";
    }
  }
 public void buscarPerfilUsuarioOrgaoPermissaoId() {
   // Busca todos os perfilUsuarioOrgao.. os orgao que aquele perfil tem acesso.
   permissaoAtual.setPerfilUsuarioOrgaos(
       perfilUsuarioOrgaoService.findByPerfilUsuarioId(idPermissaoAtual));
   listaPerfilUsuarioOrgaos = permissaoAtual.getPerfilUsuarioOrgaos();
 }