From 23a46b4be35277e06ec89f48730eeb694e686be8 Mon Sep 17 00:00:00 2001
From: Kenmegne <stephanie.kenmegne@gmail.com>
Date: Thu, 18 Jun 2026 15:40:06 +0000
Subject: [PATCH] add fdx-commons and fdx-consultation
---
apifdxweb/api/apifdxweb-core-impl/src/main/java/com/megatim/apifdxweb/core/impl/administration/UserManagerImpl.java | 121 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 121 insertions(+), 0 deletions(-)
diff --git a/apifdxweb/api/apifdxweb-core-impl/src/main/java/com/megatim/apifdxweb/core/impl/administration/UserManagerImpl.java b/apifdxweb/api/apifdxweb-core-impl/src/main/java/com/megatim/apifdxweb/core/impl/administration/UserManagerImpl.java
new file mode 100644
index 0000000..e3ea761
--- /dev/null
+++ b/apifdxweb/api/apifdxweb-core-impl/src/main/java/com/megatim/apifdxweb/core/impl/administration/UserManagerImpl.java
@@ -0,0 +1,121 @@
+package com.megatim.apifdxweb.core.impl.administration;
+
+import com.bekosoftware.genericdaolayer.dao.ifaces.GenericDAO;
+import com.bekosoftware.genericmanagerlayer.core.impl.AbstractGenericManager;
+import com.google.common.hash.Hashing;
+import com.megatim.apifdxweb.core.ifaces.administration.RoleManager;
+import com.megatim.apifdxweb.core.ifaces.administration.UserManager;
+import com.megatim.apifdxweb.dao.ifaces.administration.UserDAO;
+import com.megatim.apifdxweb.model.administration.User;
+import com.megatim.apifdxweb.model.dtos.EditPasswordDto;
+import com.megatim.fdxcommons.model.enumeration.EtatOperation;
+import com.megatim.fdxcommons.model.enumeration.TypeOperation;
+import com.megatim.fdxcommons.model.referentiel.Participant;
+import com.megatim.fdxcommons.tools.exceptions.CommonApplicationValidationException;
+import java.nio.charset.StandardCharsets;
+import java.util.Date;
+import javax.enterprise.context.Dependent;
+import javax.inject.Inject;
+
+@Dependent
+public class UserManagerImpl extends AbstractGenericManager<User, Long> implements UserManager {
+
+ @Inject
+ protected UserDAO dao;
+
+ @Inject
+ protected RoleManager roleManager;
+
+ public UserManagerImpl() {
+ }
+
+ @Override
+ public GenericDAO<User, Long> getDao() {
+ return dao;
+ }
+
+ @Override
+ public String getEntityIdName() {
+ return "id";
+ }
+
+ @Override
+ public User recuperUtilisateur(String username, String motDePasse) {
+ return dao.recuperUtilisateur(username, motDePasse);
+ }
+
+ @Override
+ public User recuperUtilisateur(String username) {
+ return dao.recuperUtilisateur(username);
+ }
+
+ @Override
+ public void addUser(Participant participant, String token) {
+
+ User user = dao.getUser(participant.getCode());
+ if (user == null) {
+ user = new User();
+ user.setUserName(participant.getCode());
+ user.setFirstName(participant.getLibelle());
+ user.setLastName(participant.getCode());
+ user.setEtatOperation(EtatOperation.ACTIF);
+ user.setTypeOperation(TypeOperation.AJOUTER);
+ user.setDateCreation(new Date());
+
+ user.setPwd(token);
+ user.setParticipant(participant);
+
+ dao.save(user);
+ }
+
+ }
+
+ @Override
+ public void updateUser(Participant participant, String token) {
+ User user = dao.getUser(participant.getCode());
+ if (user != null) {
+ user.setDateDerniereModification(new Date());
+ user.setPwd(token);
+ dao.save(user);
+ }
+ }
+
+ @Override
+ public void lockUser(Participant participant) {
+ User user = dao.getUser(participant.getCode());
+ if (user != null) {
+ user.setLocked(true);
+ dao.save(user);
+ }
+ }
+
+ @Override
+ public void unLockUser(Participant participant) {
+ User user = dao.getUser(participant.getCode());
+ if (user != null) {
+ user.setLocked(false);
+ dao.save(user);
+ }
+ }
+
+ @Override
+ public void editPassword(String username, EditPasswordDto editPasswordDto) {
+
+ if (!editPasswordDto.getNewPassword().equals(editPasswordDto.getNewPasswordConfirm())) {
+ throw new CommonApplicationValidationException("Le nouveau mot de passe et le mote de passe de confirmation ne sont pas identiques.");
+ }
+
+ User user = recuperUtilisateur(username);
+ if (user == null) {
+ throw new CommonApplicationValidationException("Imposssible d'effectuer l'action: utilisateur non reconnu");
+ }
+
+ if (!Hashing.sha256().hashString(editPasswordDto.getActualPassword(), StandardCharsets.UTF_8).toString().equals(user.getPwd())) {
+ throw new CommonApplicationValidationException("Le mot de passe actuel est incorrect");
+ }
+
+ user.setPwd(Hashing.sha256().hashString(editPasswordDto.getNewPassword(), StandardCharsets.UTF_8).toString());
+ update(user.getId(), user);
+ }
+
+}
--
Gitblit v1.10.0