// PAS FINI ?
  @Override
  public boolean createUser(User user) throws SQLException {
    if (SQLSettings.getPDS() == null) System.err.println("getPDS() not started.");
    ResultSet rset = null;
    int rset2;
    Statement stmt = null;
    Connection connection = null;

    try {
      connection = SQLSettings.getPDS().getConnection();
      stmt = connection.createStatement();
      String encryptedPass = null;

      rset = stmt.executeQuery("select PASSWORD('" + user.getPassword() + "') ;");
      if (rset != null) {
        while (rset.next()) {
          encryptedPass = rset.getString(1);
        }
        rset2 =
            stmt.executeUpdate(
                "create user '"
                    + user.getLogin()
                    + "'@'%' IDENTIFIED BY PASSWORD '"
                    + encryptedPass
                    + "' ;");

        String[] viewCommand = Scripts.getCreateUserViews(user);
        // On cree les vues utilisateur et on donne les acces
        for (String curcom : viewCommand) rset2 = stmt.executeUpdate(curcom);

        // on insere le tuple dans user_view
        UserViewDAO uvdao = new MySQLUserViewDAO();
        uvdao.addUserView(user.getLogin(), user.getId());

        return true;
      }

      return false;

    } catch (SQLException e) {
      e.printStackTrace();
      throw e;
    } finally {
      try {
        if (rset != null) rset.close();
      } catch (Exception e) {
      }
      ;
      try {
        if (stmt != null) stmt.close();
      } catch (Exception e) {
      }
      ;
      try {
        if (connection != null) connection.close();
      } catch (Exception e) {
      }
      ;
    }
  }
  // Метод проверки существования пользователя по логину в базе
  public String userLoginInBd(User user) {
    Session session = HibernateUtil.openSession();
    Transaction transaction = null;
    String userLoginDB = null;

    try {
      transaction = session.getTransaction();
      transaction.begin();
      SQLQuery query = session.createSQLQuery("SELECT login FROM user WHERE login=?;");
      query.setParameter(0, user.getLogin());

      userLoginDB = (String) query.uniqueResult(); // возвращает экземпляр или null

      transaction.commit(); // применяем транзакцию

      System.out.println("Пользователь с логином = " + userLoginDB + "уже существует");

    } catch (Exception e) {

      // отменяем транзакцию
      transaction.rollback();
      e.printStackTrace();
    } finally {
      session.close();
    }

    return userLoginDB;
  }
  public Integer userIDInBd(User user, String id) {
    Session session = HibernateUtil.openSession();
    Transaction transaction = null;
    Integer userIdDB = null;

    try {
      transaction = session.getTransaction();
      transaction.begin();
      SQLQuery query = session.createSQLQuery("SELECT id FROM user WHERE login=?;");
      query.setParameter(0, user.getLogin());

      userIdDB = (Integer) query.uniqueResult();

      System.out.println("Печать id юзера из базы" + userIdDB);

      transaction.commit(); // применяем транзакцию

    } catch (Exception e) {

      // отменяем транзакцию
      transaction.rollback();
      e.printStackTrace();
    } finally {
      session.close();
    }

    return userIdDB;
  }
  // PAS FINI ?
  @Override
  public boolean removeUser(User user) throws SQLException {
    if (SQLSettings.getPDS() == null) System.err.println("getPDS() not started.");
    int rset2;
    Statement stmt = null;
    Connection connection = null;

    try {
      connection = SQLSettings.getPDS().getConnection();
      stmt = connection.createStatement();

      String[] viewCommand = Scripts.getDeleteUserViews(user);
      // On supprime les vues utilisateur et  acces
      for (String curcom : viewCommand) rset2 = stmt.executeUpdate(curcom);
      connection = SQLSettings.getPDS().getConnection();
      stmt = connection.createStatement();
      stmt.execute("DROP USER " + user.getLogin() + " ;");
      connection = SQLSettings.getPDS().getConnection();
      stmt = connection.createStatement();
      stmt.execute("DROP USER " + user.getLogin() + "@'' ;");

      // on enleve le tuple de user_view
      UserViewDAO uvdao = new MySQLUserViewDAO();
      uvdao.removeUser(user);

      return true;

    } catch (SQLException e) {
      e.printStackTrace();
      throw e;
    } finally {
      try {
        if (stmt != null) stmt.close();
      } catch (Exception e) {
      }
      ;
      try {
        if (connection != null) connection.close();
      } catch (Exception e) {
      }
      ;
    }
  }
  public boolean updateUser(User user, String id) {
    // Session session = HibernateUtil.openSession();
    Boolean result = false;
    // Boolean peremennaya=false;

    // int idInt = (Integer) id;

    int chislo = Integer.parseInt(id);

    System.out.println("печать id cо страницы панель администратора" + id);

    String userLoginInBd = userLoginInBd(user);
    Integer userIDInBd = userIDInBd(user, id);

    System.out.println(user.getLogin() + " = " + userLoginInBd + " ии " + id + " = " + userIDInBd);

    /*if(user.getLogin() != userLoginInBd ){

    	result = true;
    	updateUserBd(user, id);
    	return result;
    }*/

    if (user.getLogin().equals(userLoginInBd) && userIDInBd.equals(chislo)) {
      /*if(id.equals(userIDInBd)){*/

      result = true;
      updateUserBd(user, id);
      // return result;

    } else {
      if (userLoginInBd == null) {

        result = true;
        updateUserBd(user, id);
        // return result;
      }
    }

    return result;
  }
  public void updateUserBd(User user, String id) {

    Session session = HibernateUtil.openSession();
    Transaction transaction = null;

    try {
      transaction = session.getTransaction();
      transaction.begin();

      SQLQuery query =
          session.createSQLQuery(
              "UPDATE user SET surname=?, name=?, middleName=?, login=?, password=?, mobileTelephone=?, email=? WHERE id=?;");
      query.setParameter(0, user.getSurname());
      query.setParameter(1, user.getName());
      query.setParameter(2, user.getMiddleName());
      query.setParameter(3, user.getLogin());
      query.setParameter(4, user.getPassword());
      query.setParameter(5, user.getMobileTelephone());
      query.setParameter(6, user.getEmail());
      query.setParameter(7, id);
      int resultUpdate =
          query.executeUpdate(); // возвращает количество субъектов которые были изменены

      System.out.println("Update отчет " + resultUpdate);

      // session.saveOrUpdate(user);
      transaction.commit(); // применяем транзакцию
    } catch (Exception e) {

      // отменяем транзакцию
      transaction.rollback();
      e.printStackTrace();
    } finally {
      session.close();
    }
  }
예제 #7
0
 public boolean isValid(User user, ConstraintValidatorContext context) {
   return !userDao.containsUserWithLogin(user.getLogin());
 }
예제 #8
0
 private void setUsertoComponents(User user) {
   jTextFieldAccountName.setText(user.getLogin());
   jTextFieldRedirectUrl.setText(user.getRedirectUrl());
   persistUser(user);
 }