@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); }