@Override
  public Collection<ReponseSecrete> recupererPasswordEtape1(AgentEtat agentEtat)
      throws ServiceException {
    // Est ce que la saisie est cohérente
    // System.out.println("CompteUtilisateurServiceImpl.questionSecretes()");
    // serviceException(ServiceExceptionType.SAISIE_INCOHERENTE);

    AgentEtat agentEtatExistant = agentEtatDao.readByMatricule(agentEtat.getMatricule());

    if (agentEtatExistant == null
        || !agentEtatExistant.getMatricule().equalsIgnoreCase(agentEtat.getMatricule())
        || !agentEtatExistant.getContact().getEmail().equals(agentEtat.getContact().getEmail())
        || !agentEtatExistant.getType().equals(agentEtat.getType()))
      serviceException(ServiceExceptionType.SAISIE_INCOHERENTE);

    // est ce qu'il est associé a un compte utilisateur
    CompteUtilisateur compteUtilisateur =
        ((CompteUtilisateurDao) dao).readByMatricule(agentEtat.getMatricule());
    // System.out.println(compteUtilisateur);
    if (compteUtilisateur == null)
      serviceException(ServiceExceptionType.IDENTIFICATION_COMPTE_UTILISATEUR_INEXISTANT);

    Collection<ReponseSecrete> reponseSecretes = new LinkedList<>();
    for (ReponseSecrete reponseSecrete : compteUtilisateur.getReponseSecretes())
      reponseSecretes.add(new ReponseSecrete(reponseSecrete.getQuestion()));

    return reponseSecretes;
  }
  @Override
  public void recupererPasswordEtape2(
      AgentEtat agentEtat, Collection<ReponseSecrete> reponseSecretes) throws ServiceException {
    CompteUtilisateur compteUtilisateur =
        ((CompteUtilisateurDao) dao).readByMatricule(agentEtat.getMatricule());
    if (compteUtilisateur == null)
      serviceException(ServiceExceptionType.IDENTIFICATION_COMPTE_UTILISATEUR_INEXISTANT);

    for (ReponseSecrete reponseSecreteCu : compteUtilisateur.getReponseSecretes())
      for (ReponseSecrete reponseSecreteSaisie : reponseSecretes)
        if (reponseSecreteCu.getQuestion().equals(reponseSecreteSaisie.getQuestion()))
          if (!reponseSecreteCu.getLibelle().equalsIgnoreCase(reponseSecreteSaisie.getLibelle()))
            serviceException(
                ServiceExceptionType.IDENTIFICATION_COMPTE_UTILISATEUR_REPONSE_INCORRECT);

    verouiller(compteUtilisateur, Cause.REINITIALISATION_PASSWORD);
  }