コード例 #1
0
ファイル: UsuarioDAO.java プロジェクト: rscarvalho/ueg-sige
  /**
   * buscaPorLogin
   *
   * @param nome String
   * @return ArrayList
   */
  public static ArrayList<Usuario> buscaPorLogin(String login) {
    SigeDataBase db = new SigeDataBase();
    try {
      String query =
          "SELECT cd_usuario as codigo, nome_usuario as nome,"
              + " cd_entidade as entidade, login, decode(senha,'base64')"
              + " as senha, cpf, ativo FROM usuarios WHERE lower(login) LIKE lower(?) ORDER BY nome_usuario";
      db.setPreparedStatement(
          db.getConn()
              .prepareStatement(
                  query, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY));
      db.setString(1, '%' + login + '%');
      ResultSet rs = db.executeQuery();
      if (rs.next()) {
        ArrayList<Usuario> resultado = new ArrayList<Usuario>();
        do {
          Usuario usuario = new Usuario();
          Entidade entidade = (Entidade) EntidadeDAO.buscaPorCodigo(rs.getInt("entidade"));
          if (entidade != null) {
            usuario.setEntidade(entidade);
          } else {
            throw new SQLException("Entidade Não Existe");
          }
          usuario.setCodigo(rs.getInt("codigo"));
          usuario.setNomeCompleto(rs.getString("nome"));
          usuario.setLogin(rs.getString("login"));
          usuario.setSenha(rs.getString("senha"));
          usuario.setCPF(rs.getString("cpf"));
          usuario.setPermissoes(PermissaoDAO.buscaPorUsuario(usuario));
          usuario.setAtivo(rs.getBoolean("ativo"));
          resultado.add(usuario);
        } while (rs.next());
        rs.close();
        db.closeConnection();
        return resultado;
      }
      db.closeConnection();
      return null;

    } catch (SQLException ex) {
      ex.printStackTrace();
      return null;
    }
  }
コード例 #2
0
ファイル: UsuarioDAO.java プロジェクト: rscarvalho/ueg-sige
  /**
   * buscaPorCodigo
   *
   * @param codigo int
   * @return Usuario
   */
  public static Usuario buscaPorCodigo(int codigo) {
    SigeDataBase db = new SigeDataBase();

    try {
      String query =
          "SELECT cd_usuario as codigo, ativo, nome_usuario "
              + "as nome, cd_entidade as entidade, login,"
              + " decode(senha,'base64') as senha, cpf FROM usuarios"
              + " WHERE cd_usuario=? ORDER BY nome_usuario";
      db.prepareStatement(query);
      db.setInt(1, codigo);
      ResultSet rs = db.executeQuery();
      if (rs.next()) {
        Usuario usuario = new Usuario();
        Entidade entidade = EntidadeDAO.buscaPorCodigo(rs.getInt("entidade"));
        if (entidade != null) {
          usuario.setEntidade(entidade);
        } else {
          throw new SQLException("Entidade Nao Existe");
        }
        usuario.setCodigo(rs.getInt("codigo"));
        usuario.setNomeCompleto(rs.getString("nome"));
        usuario.setLogin(rs.getString("login"));
        usuario.setSenha(rs.getString("senha"));
        usuario.setCPF(rs.getString("cpf"));
        usuario.setAtivo(rs.getBoolean("ativo"));
        usuario.setPermissoes(PermissaoDAO.buscaPorUsuario(usuario));
        rs.close();
        db.closeConnection();
        return usuario;
      }
      db.closeConnection();
      return null;

    } catch (SQLException ex) {
      ex.printStackTrace();
      return null;
    }
  }
コード例 #3
0
ファイル: UsuarioDAO.java プロジェクト: rscarvalho/ueg-sige
 public static Usuario buscaPorLoginSenha(String login, String senha) {
   SigeDataBase db = new SigeDataBase();
   try {
     db.prepareStatement(
         "SELECT cd_usuario FROM usuarios WHERE login = ? AND senha = encode('"
             + senha
             + "','base64')");
     db.setString(1, login);
     ResultSet rs = db.executeQuery();
     if (rs.next()) {
       Usuario usuario = buscaPorCodigo(rs.getInt("cd_usuario"));
       rs.close();
       db.closeConnection();
       return usuario;
     }
     rs.close();
     db.closeConnection();
   } catch (SQLException ex) {
     ex.printStackTrace();
   }
   return null;
 }
コード例 #4
0
ファイル: UsuarioDAO.java プロジェクト: rscarvalho/ueg-sige
  /**
   * buscaParametrizada
   *
   * @param nome String
   * @return ArrayList
   */
  @SuppressWarnings("unchecked")
  public static ArrayList<Usuario> buscaParametrizada(Map<String, Object> campos) {
    SigeDataBase db = new SigeDataBase();
    String query =
        "SELECT cd_usuario FROM permissao_por_usuario WHERE lower(nome_usuario)"
            + " LIKE lower(?) AND lower(login) LIKE lower(?) AND cpf LIKE ? AND cd_usuario!=1";
    StringBuffer preQuery = new StringBuffer(query);
    if (campos.get("entidade") != null) {
      preQuery.append(" AND cd_entidade=?");
    }

    List<Permissao> permissoes = null;
    try {
      permissoes = (List<Permissao>) campos.get("permissoes");
    } catch (ClassCastException e) {
      // Do nothing
    }

    if (permissoes != null) {
      preQuery.append("AND (");
      for (Iterator<Permissao> iter = permissoes.iterator(); iter.hasNext(); ) {
        preQuery.append(" cd_permissao=?");
        if (iter.hasNext()) {
          preQuery.append(" OR");
        }
      }
      preQuery.append(" )");
    }
    String status = (String) campos.get("status");
    if (!status.equals("both")) {
      preQuery.append(" AND ativo=?");
    }
    preQuery.append("GROUP BY cd_usuario");
    query = new String(preQuery);
    try {
      int i = 1;
      db.prepareStatement(query);
      db.setString(i++, '%' + (String) campos.get("nomeCompleto") + '%');
      db.setString(i++, '%' + (String) campos.get("login") + '%');
      db.setString(i++, '%' + (String) campos.get("cpf") + '%');
      if (campos.get("entidade") != null) {
        Entidade entidade = (Entidade) campos.get("entidade");
        db.setInt(i++, entidade.getCodigo());
      }
      if (permissoes != null) {
        for (Iterator<Permissao> iter = permissoes.iterator(); iter.hasNext(); ) {
          Permissao permissao = iter.next();
          db.setInt(i++, permissao.getCodigo());
        }
      }
      if (!status.equals("both")) {
        db.setBoolean(i++, status.equals("ativo"));
      }
      ResultSet rs = db.executeQuery();
      if (rs.next()) {
        ArrayList<Usuario> resultado = new ArrayList<Usuario>();
        do {
          Usuario usuario = buscaPorCodigo(rs.getInt("cd_usuario"));
          resultado.add(usuario);
        } while (rs.next());
        rs.close();
        db.closeConnection();
        return resultado;
      }
      db.closeConnection();
      return null;
    } catch (SQLException ex) {
      ex.printStackTrace();
    }
    db.closeConnection();
    return null;
  }