@Override public void deverouiller(Verrou verrou, Credentials credentials) throws ServiceException { CompteUtilisateur compteUtilisateur = ((CompteUtilisateurDao) dao).readByUsername(credentials.getUsername()); if (compteUtilisateur == null) serviceException(ServiceExceptionType.IDENTIFICATION_COMPTE_UTILISATEUR_INEXISTANT); // est ce que le compte est verouille if (compteUtilisateur.getVerrou() == null) serviceException(ServiceExceptionType.IDENTIFICATION_COMPTE_UTILISATEUR_ACTIF); if (compteUtilisateur.getVerrou().getCause() == null || !compteUtilisateur.getVerrou().getCode().equals(verrou.getCode())) serviceException( ServiceExceptionType.IDENTIFICATION_COMPTE_UTILISATEUR_CODE_DEVEROUILLAGE_INCONNU); if (Cause.ACCESS_MULTIPLE.equals(verrou.getCause()) && !compteUtilisateur.getCredentials().getPassword().equals(credentials.getPassword())) serviceException(ServiceExceptionType.IDENTIFICATION_COMPTE_UTILISATEUR_INEXISTANT); if (!compteUtilisateur.getVerrou().getJeton().equals(verrou.getJeton())) serviceException( ServiceExceptionType.IDENTIFICATION_COMPTE_UTILISATEUR_JETON_DEVEROUILLAGE_INCONNU); switch (verrou.getCause()) { case ACCESS_MULTIPLE: infos.clear(); notifier( NotificationMessageType.AVIS_COMPTE_UTILISATEUR_DEVERROUILLE_ACCES_MULTIPLE, new Object[] {"nomPrenomsAgentEtat", compteUtilisateur.getUtilisateur().getNom()}, compteUtilisateur); break; case REINITIALISATION_PASSWORD: compteUtilisateur .getCredentials() .setPassword( credentials.getPassword()); // on ecrase son ancien mot de passe avec le nouveau notifier( NotificationMessageType.AVIS_COMPTE_UTILISATEUR_DEVERROUILLE_REINITIALISATION_PASSWORD, new Object[] { "nomPrenomsAgentEtat", compteUtilisateur.getUtilisateur().getNom(), "loginUtilisateur", credentials.getUsername(), "motPasseUtilisateur", credentials.getPassword() }, compteUtilisateur); break; } compteUtilisateur.setVerrou(null); dao.update(compteUtilisateur); }
@Override public void deverouillable(Verrou verrou) throws ServiceException { CompteUtilisateur compteUtilisateur = ((CompteUtilisateurDao) dao) .readByCodeVerrouByCauseVerrou(verrou.getCode(), verrou.getCause()); if (compteUtilisateur == null) serviceException( ServiceExceptionType.IDENTIFICATION_COMPTE_UTILISATEUR_CODE_DEVEROUILLAGE_INCONNU); }