/** {@inheritDoc} */
  @Override
  public IUtilisateur majMotDePasse(int idUtilisateur, String motDePasse) {
    IUtilisateur utilisateur = null;
    String sqlQuery =
        String.format(
            "UPDATE %s SET %s=? WHERE %s=?;",
            BaseDonneeEnum.UTILISATEUR,
            UtilisateurEnum.MOT_DE_PASSE_UTILISATEUR,
            UtilisateurEnum.ID_UTILISATEUR);
    PreparedStatement preparedStatement = this.getBd().openPrepared(sqlQuery);

    // Cryptage du mot de passe
    StrongPasswordEncryptor passwordEncryptor = new StrongPasswordEncryptor();
    String motDePasseCrypt = passwordEncryptor.encryptPassword(motDePasse);

    try {
      int numeroParametre = 1;
      preparedStatement.setString(numeroParametre, motDePasseCrypt);
      preparedStatement.setInt(++numeroParametre, idUtilisateur);
      // On créé une instance Utilisateur avec les informations à notre disposition.
      utilisateur = new Utilisateur(idUtilisateur);
      utilisateur.setMotDePasseUtilisateur(motDePasseCrypt);
      preparedStatement.executeUpdate();
    } catch (SQLException e) {
      LOGGER.warn(e);
    }
    this.getBd().closePrepared(preparedStatement);

    return utilisateur;
  }
  /** {@inheritDoc} */
  @Override
  public IUtilisateur creerUtilisateur(
      String prenom,
      String nom,
      String identifiant,
      String motDePasse,
      int numeroEtudiant,
      int idEntite) {
    IUtilisateur utilisateur = null;
    String sqlQuery =
        String.format(
            "INSERT INTO %s (%s,%s,%s,%s,%s,%s) VALUES (?,?,?,?,?,?);",
            BaseDonneeEnum.UTILISATEUR,
            UtilisateurEnum.PRENOM_UTILISATEUR,
            UtilisateurEnum.NOM_UTILISATEUR,
            UtilisateurEnum.IDENTIFIANT_UTILISATEUR,
            UtilisateurEnum.MOT_DE_PASSE_UTILISATEUR,
            UtilisateurEnum.NUMERO_ETUDIANT,
            UtilisateurEnum.ID_ENTITE);
    PreparedStatement preparedStatement = this.getBd().openPrepared(sqlQuery);

    // Cryptage du mot de passe
    StrongPasswordEncryptor passwordEncryptor = new StrongPasswordEncryptor();
    String motDePasseCrypt = passwordEncryptor.encryptPassword(motDePasse);

    ResultSet resultSet = null;
    try {
      int numeroParametre = 1;
      preparedStatement.setString(numeroParametre, prenom);
      preparedStatement.setString(++numeroParametre, nom);
      preparedStatement.setString(++numeroParametre, identifiant);
      preparedStatement.setString(++numeroParametre, motDePasseCrypt);
      preparedStatement.setInt(++numeroParametre, numeroEtudiant);
      preparedStatement.setInt(++numeroParametre, idEntite);
      preparedStatement.executeUpdate();
      // On cherche à obtenir l'idUtilisateur généré.
      resultSet = preparedStatement.getGeneratedKeys();
    } catch (SQLException e) {
      LOGGER.warn(e);
    }

    if (resultSet != null) {
      try {
        // Si resusltSet n'est pas nul, on accède à la première ligne.
        resultSet.next();
        // On créé une instance Utilisateur avec les informations à notre disposition.
        utilisateur =
            new Utilisateur(
                resultSet.getInt(1), numeroEtudiant, nom, prenom, identifiant, motDePasseCrypt);
        utilisateur.setEntiteUtilisateur(new Entite(idEntite));
        resultSet.close();
      } catch (SQLException e) {
        LOGGER.warn(e);
      }
    }
    this.getBd().closePrepared(preparedStatement);

    return utilisateur;
  }
  /** {@inheritDoc} */
  @Override
  public IUtilisateur getUtilisateurByIdentifiant(String identifiant) {
    IUtilisateur utilisateur = null;
    String sqlQuery =
        String.format(
            "SELECT u.%s, u.%s, u.%s, u.%s, u.%s, u.%s, u.%s, e.%s  FROM %s u JOIN %s e ON u.%s = e.%s AND u.%s=?;",
            UtilisateurEnum.ID_UTILISATEUR,
            UtilisateurEnum.NUMERO_ETUDIANT,
            UtilisateurEnum.NOM_UTILISATEUR,
            UtilisateurEnum.PRENOM_UTILISATEUR,
            UtilisateurEnum.IDENTIFIANT_UTILISATEUR,
            UtilisateurEnum.MOT_DE_PASSE_UTILISATEUR,
            UtilisateurEnum.ID_ENTITE,
            EntiteEnum.NOM_ENTITE,
            BaseDonneeEnum.UTILISATEUR,
            BaseDonneeEnum.ENTITE,
            UtilisateurEnum.ID_ENTITE,
            EntiteEnum.ID_ENTITE,
            UtilisateurEnum.IDENTIFIANT_UTILISATEUR);
    PreparedStatement preparedStatement = this.getBd().openPrepared(sqlQuery);

    ResultSet resultSet = null;
    try {
      preparedStatement.setString(1, identifiant);
      resultSet = preparedStatement.executeQuery();
    } catch (SQLException e) {
      LOGGER.warn(e);
    }

    if (resultSet != null) {
      try {
        // Si resusltSet n'est pas nul, on accède à la première ligne.
        resultSet.next();
        // On créé une instance Utilisateur avec les informations à notre disposition.
        utilisateur =
            new Utilisateur(
                resultSet.getInt(UtilisateurEnum.ID_UTILISATEUR.toString()),
                resultSet.getInt(UtilisateurEnum.NUMERO_ETUDIANT.toString()),
                resultSet.getString(UtilisateurEnum.NOM_UTILISATEUR.toString()),
                resultSet.getString(UtilisateurEnum.PRENOM_UTILISATEUR.toString()),
                resultSet.getString(UtilisateurEnum.IDENTIFIANT_UTILISATEUR.toString()),
                resultSet.getString(UtilisateurEnum.MOT_DE_PASSE_UTILISATEUR.toString()));
        // Ainsi qu'une instance d'ENTITE que l'on ajoutera dans Utilisateur
        IEntite entite =
            new Entite(
                resultSet.getInt(UtilisateurEnum.ID_ENTITE.toString()),
                resultSet.getString(EntiteEnum.NOM_ENTITE.toString()));
        utilisateur.setEntiteUtilisateur(entite);
        resultSet.close();
      } catch (SQLException e) {
        LOGGER.warn(e);
      }
    }
    this.getBd().closePrepared(preparedStatement);

    return utilisateur;
  }
  /** {@inheritDoc} */
  @Override
  public IUtilisateur majUtilisateur(
      int idUtilisateur,
      String prenom,
      String nom,
      String identifiant,
      int numeroEtudiant,
      int idEntite) {
    IUtilisateur utilisateur = null;
    String sqlQuery =
        String.format(
            "UPDATE %s SET %s=?,%s=?,%s=?,%s=?,%s=? WHERE %s=?;",
            BaseDonneeEnum.UTILISATEUR,
            UtilisateurEnum.PRENOM_UTILISATEUR,
            UtilisateurEnum.NOM_UTILISATEUR,
            UtilisateurEnum.IDENTIFIANT_UTILISATEUR,
            UtilisateurEnum.NUMERO_ETUDIANT,
            UtilisateurEnum.ID_ENTITE,
            UtilisateurEnum.ID_UTILISATEUR);
    PreparedStatement preparedStatement = this.getBd().openPrepared(sqlQuery);

    try {
      int numeroParametre = 1;
      preparedStatement.setString(numeroParametre, prenom);
      preparedStatement.setString(++numeroParametre, nom);
      preparedStatement.setString(++numeroParametre, identifiant);
      preparedStatement.setInt(++numeroParametre, numeroEtudiant);
      preparedStatement.setInt(++numeroParametre, idEntite);
      preparedStatement.setInt(++numeroParametre, idUtilisateur);
      preparedStatement.executeUpdate();
      // On créé une instance Utilisateur avec les informations à notre disposition.
      utilisateur = new Utilisateur(idUtilisateur, numeroEtudiant, nom, prenom, identifiant, "");
      utilisateur.setEntiteUtilisateur(new Entite(idEntite));
    } catch (SQLException e) {
      LOGGER.warn(e);
    }
    this.getBd().closePrepared(preparedStatement);

    return utilisateur;
  }
  /** {@inheritDoc} */
  @Override
  public List<IUtilisateur> getListUtilisateur() {
    List<IUtilisateur> utilisateurList = new ArrayList<>();
    String sqlQuery = String.format("SELECT * FROM %s;", BaseDonneeEnum.UTILISATEUR);
    PreparedStatement preparedStatement = this.getBd().openPrepared(sqlQuery);

    ResultSet resultSet = null;
    try {
      resultSet = preparedStatement.executeQuery();
    } catch (SQLException e) {
      LOGGER.warn(e);
    }

    if (resultSet != null) {
      try {
        // Tant qu'il reste des lignes dans le resultSet
        while (resultSet.next()) {
          // On créé une instance d'utilisateur avec les informations à notre disposition, et on
          // l'ajoute
          IUtilisateur utilisateur =
              new Utilisateur(
                  resultSet.getInt(UtilisateurEnum.ID_UTILISATEUR.toString()),
                  resultSet.getInt(UtilisateurEnum.NUMERO_ETUDIANT.toString()),
                  resultSet.getString(UtilisateurEnum.NOM_UTILISATEUR.toString()),
                  resultSet.getString(UtilisateurEnum.PRENOM_UTILISATEUR.toString()),
                  resultSet.getString(UtilisateurEnum.IDENTIFIANT_UTILISATEUR.toString()),
                  "");
          utilisateur.setEntiteUtilisateur(
              new Entite(resultSet.getInt(UtilisateurEnum.ID_ENTITE.toString())));
          utilisateurList.add(utilisateur);
        }
        resultSet.close();
      } catch (SQLException e) {
        LOGGER.warn(e);
      }
    }
    this.getBd().closePrepared(preparedStatement);

    return utilisateurList;
  }
예제 #6
0
 @Override
 public void actionPerformed(ActionEvent e) {
   this.log = Main.appli.login.log;
   this.mdp = Main.appli.login.mdp;
   login = this.log.getText();
   motdepasse = new String(this.mdp.getPassword());
   if ("".equals(login) && "".equals(motdepasse)) {
     JOptionPane.showMessageDialog(
         null,
         "Veuillez remplir les champs Identifiant et Mot de passe.",
         "Erreur",
         JOptionPane.ERROR_MESSAGE);
   } else if ("".equals(login)) {
     JOptionPane.showMessageDialog(
         null, "Veuillez remplir le champs Identifiant.", "Erreur", JOptionPane.ERROR_MESSAGE);
   } else if ("".equals(motdepasse)) {
     JOptionPane.showMessageDialog(
         null, "Veuillez remplir le champs Mot de passe.", "Erreur", JOptionPane.ERROR_MESSAGE);
   } else {
     try {
       utilisateur = service.getUtilisateurByIdentifiant(login);
     } catch (RemoteException e1) {
       LOGGER.fatal(e1);
     }
     if (utilisateur == null) {
       JOptionPane.showMessageDialog(
           null, "L'identifiant n'est pas valide", "Erreur", JOptionPane.ERROR_MESSAGE);
     } else {
       if (utilisateur.validerMotDePasseUtilisateur(motdepasse)) {
         JOptionPane.showMessageDialog(
             null,
             "identifiant et mot de passe valides",
             "Information",
             JOptionPane.INFORMATION_MESSAGE);
         changerVueLogin();
       } else {
         JOptionPane.showMessageDialog(
             null, "Le mot de passe n'est pas valide", "Erreur", JOptionPane.ERROR_MESSAGE);
       }
     }
   }
 }