diff --git a/src/main/java/com/triz/trizservice/bean/FormUserBean.java b/src/main/java/com/triz/trizservice/bean/FormUserBean.java index 45f41e9..21cdff3 100644 --- a/src/main/java/com/triz/trizservice/bean/FormUserBean.java +++ b/src/main/java/com/triz/trizservice/bean/FormUserBean.java @@ -4,20 +4,26 @@ */ package com.triz.trizservice.bean; +import com.triz.trizservice.modeles.Centre; import com.triz.trizservice.modeles.ServiceGroupe; import com.triz.trizservice.modeles.ServiceIncrementation; import com.triz.trizservice.modeles.ServiceMember; import com.triz.trizservice.modeles.ServiceUser; import com.triz.trizservice.modeles.ServicehistoriqueConnection; import com.triz.trizservice.modeles.ServiceHistoriqueManipulation; +import com.triz.trizservice.modeles.ServiceUserCentre; import com.triz.trizservice.service.TransactionService; import com.triz.util.UtilContext; import java.util.ArrayList; +import java.util.Date; import java.util.List; import javax.annotation.PostConstruct; +import javax.faces.application.FacesMessage; +import javax.faces.context.FacesContext; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; +import javax.faces.event.AjaxBehaviorEvent; /** * @@ -38,6 +44,7 @@ public class FormUserBean { private List listehistManipulation = new ArrayList<>(); private List listeGroups; private ServiceMember member; + private Centre currentCenter; @Autowired public TransactionService service; @@ -50,6 +57,7 @@ public class FormUserBean { System.out.println("//--------------init()FormUserBean "); user = context.getCurrentUser(); listeGroups = service.getAllGroups(); + currentCenter = context.getCurrentEtablissement(); if (modifier != null) { if (modifier.equals("true")) { @@ -63,6 +71,8 @@ public class FormUserBean { System.out.println("Utilisateur" + userSelected); listeHistCnx = service.getListHistoriqueConnectionByUsers(userSelected); listehistManipulation = service.getListHistoriqueManipulationByUsersByEntreprise(userSelected); + confirmationMp = userSelected.getUserpw(); + context.saveNewManipulation("User", userSelected.getUserid(), "consulter user", new Date(), new Date(), user, "", ""); } else { if (canEdit) { isNew = true; @@ -79,17 +89,68 @@ public class FormUserBean { } public String saveUser() { + if (userSelected.getUserpw() != null && !userSelected.getUserpw().equals(confirmationMp)) { + FacesContext.getCurrentInstance().addMessage(null, + new FacesMessage(FacesMessage.SEVERITY_ERROR, + "Les mots de passe ne correspondent pas", null)); + return null; + } + if (isNew) { + context.saveNewManipulation("User", userSelected.getUserid(), "Ajouter user", new Date(), new Date(), user, "", ""); + } else { + if (canEdit) { + ServiceMember oldMember = service.getGroupByUser(user); + if (member.getFkGroupe().getId() == oldMember.getFkGroupe().getId()) { + context.saveNewManipulation("User", userSelected.getUserid(), "modifier groupe user", new Date(), new Date(), user, oldMember.getFkGroupe().getNomGroupe(), + member.getFkGroupe().getNomGroupe()); + } + ServiceUser oldUser = service.getUserById(user1); + if (userSelected.getUserpw().equalsIgnoreCase(oldUser.getUserpw())) { + context.saveNewManipulation("User", userSelected.getUserid(), "modifier pw user", new Date(), new Date(), user, "", + ""); + } + if (userSelected.getActif().equalsIgnoreCase(oldUser.getActif())) { + context.saveNewManipulation("User", userSelected.getUserid(), "modifier Statut user", new Date(), new Date(), user, oldUser.getActif(), + userSelected.getActif()); + } + if (userSelected.getPrenom().equalsIgnoreCase(oldUser.getPrenom())) { + context.saveNewManipulation("User", userSelected.getUserid(), "modifier prenom user", new Date(), new Date(), user, oldUser.getPrenom(), + userSelected.getPrenom()); + } + if (userSelected.getNom().equalsIgnoreCase(oldUser.getNom())) { + context.saveNewManipulation("User", userSelected.getUserid(), "modifier nom user", new Date(), new Date(), user, oldUser.getNom(), + userSelected.getNom()); + } + if (userSelected.getTelephone().equalsIgnoreCase(oldUser.getTelephone())) { + context.saveNewManipulation("User", userSelected.getUserid(), "modifier telephone user", new Date(), new Date(), user, oldUser.getTelephone(), + userSelected.getTelephone()); + } + if (userSelected.getMail().equalsIgnoreCase(oldUser.getMail())) { + context.saveNewManipulation("User", userSelected.getUserid(), "modifier mail user", new Date(), new Date(), user, oldUser.getMail(), + userSelected.getMail()); + } + + context.saveNewManipulation("User", userSelected.getUserid(), "modifier user", new Date(), new Date(), user, "", ""); + } + } service.saveUser(userSelected); member.setFkUser(userSelected); + ServiceUserCentre services = new ServiceUserCentre(); + services.setFkCentre(currentCenter); + services.setFkUser(userSelected); + service.save(services); service.saveMembership(member); return voirUser(); } public String voirUser() { + System.out.println("isNew " + isNew); + System.out.println("canEdit " + canEdit); if (!isNew) { if (!canEdit) { return "list.xhtml?faces-redirect=true"; } else { + return "form.xhtml?faces-redirect=true&user1=" + userSelected.getUserid(); } } else { @@ -188,4 +249,49 @@ public class FormUserBean { public void setMember(ServiceMember member) { this.member = member; } + + public String deleteUser() { + if (userSelected != null) { + userSelected.setActif("false"); + // TODO: adapte l'appel selon ton DAO/service existant, ex: + service.saveUser(userSelected); + // ou si tu utilises un pattern différent (ex: Hibernate Criteria/session direct) : + // userDao.update(userSelected); + context.saveNewManipulation("User", userSelected.getUserid(), "Supprimer user", new Date(), new Date(), user, "", ""); + FacesContext.getCurrentInstance().addMessage(null, + new FacesMessage(FacesMessage.SEVERITY_INFO, + "L'utilisateur a été supprimé avec succès", null)); + + return voirUser(); + } + return null; + } + + private String confirmationMp; + + public String getConfirmationMp() { + return confirmationMp; + } + + public void setConfirmationMp(String confirmationMp) { + this.confirmationMp = confirmationMp; + } + + public void verifierConfirmationMp(AjaxBehaviorEvent event) { + FacesContext context = FacesContext.getCurrentInstance(); + String clientId = event.getComponent().getClientId(context); + + if (confirmationMp == null || confirmationMp.isEmpty()) { + return; + } + + String pw = userSelected.getUserpw(); + + if (pw == null || !pw.equals(confirmationMp)) { + context.addMessage(clientId, + new FacesMessage(FacesMessage.SEVERITY_ERROR, + "Les mots de passe ne correspondent pas", null)); + confirmationMp = null; + } + } } diff --git a/src/main/java/com/triz/trizservice/bean/UserBean.java b/src/main/java/com/triz/trizservice/bean/UserBean.java index 123cfea..0931648 100644 --- a/src/main/java/com/triz/trizservice/bean/UserBean.java +++ b/src/main/java/com/triz/trizservice/bean/UserBean.java @@ -4,7 +4,10 @@ */ package com.triz.trizservice.bean; +import com.triz.trizservice.modeles.ServiceGroupe; +import com.triz.trizservice.modeles.ServiceMember; import com.triz.trizservice.modeles.ServiceUser; +import com.triz.trizservice.security.impl.UserPresence; import com.triz.trizservice.service.TransactionService; import com.triz.util.UtilContext; import java.util.List; @@ -17,31 +20,31 @@ import org.springframework.stereotype.Component; * * @author Asma */ - @Component("userBean") @Scope("view") public class UserBean { + private ServiceUser user; private ServiceUser userSelected; private List listeUser; - + @Autowired public TransactionService service; - + @Autowired public UtilContext context; - + public void init() { System.out.println("//--------------init()ClientBean "); user = context.getCurrentUser(); listeUser = service.getAllUsers(); - System.out.println("listeClient: "+listeUser); + System.out.println("listeClient: " + listeUser); } - + public String ajouterUser() { return "form.xhtml?faces-redirect=true&canEdit=true"; } - + public String voirUser() { return "form.xhtml?faces-redirect=true&user1=" + userSelected.getUserid(); } @@ -69,4 +72,26 @@ public class UserBean { public void setListeUser(List listeUser) { this.listeUser = listeUser; } + + public String getGroupeByUser(ServiceUser user) { + if (user == null) { + return null; + } + + ServiceMember member = service.getGroupByUser(user); + return member.getFkGroupe().getNomGroupe(); + } + + public String isUserConnected(ServiceUser user) { + if ("true".equalsIgnoreCase(user.getActif())) { + if (UserPresence.isConnected(user.getUserid()) == true) { + return "connected"; + } else { + return "disconnected"; + } + } else { + return "inactif"; + } + + } } diff --git a/src/main/java/com/triz/trizservice/bean/converter/GroupeConverter.java b/src/main/java/com/triz/trizservice/bean/converter/GroupeConverter.java index a5c5494..40c7d25 100644 --- a/src/main/java/com/triz/trizservice/bean/converter/GroupeConverter.java +++ b/src/main/java/com/triz/trizservice/bean/converter/GroupeConverter.java @@ -21,21 +21,24 @@ import org.springframework.stereotype.Component; */ @FacesConverter("groupeConverter") @Component -public class GroupeConverter implements Converter{ +public class GroupeConverter implements Converter { + @Autowired protected transient TransactionService service; @Override public Object getAsObject(FacesContext fc, UIComponent uic, String value) { - try { - System.out.println("service "+ service); - UUID id = UUID.fromString(value); - return service.getGroupsById(id); - } catch (NumberFormatException e) { - new FacesMessage(FacesMessage.SEVERITY_ERROR, "Conversion Error", "Entreprise n'existe pas."); + + if (value == null || value.trim().isEmpty()) { + return null; } - return null; + try { + UUID id = UUID.fromString(value); + return service.getGroupsById(id); + } catch (IllegalArgumentException e) { + return null; + } } @Override diff --git a/src/main/java/com/triz/trizservice/modeles/ServiceMember.java b/src/main/java/com/triz/trizservice/modeles/ServiceMember.java index c78f01a..38cbc9d 100644 --- a/src/main/java/com/triz/trizservice/modeles/ServiceMember.java +++ b/src/main/java/com/triz/trizservice/modeles/ServiceMember.java @@ -39,7 +39,7 @@ public class ServiceMember implements Serializable { private static final long serialVersionUID = 1L; @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) + @GeneratedValue @Basic(optional = false) @Column(name = "id") private UUID id; diff --git a/src/main/java/com/triz/trizservice/modeles/ServiceUserCentre.java b/src/main/java/com/triz/trizservice/modeles/ServiceUserCentre.java index cb60b9a..a0875ac 100644 --- a/src/main/java/com/triz/trizservice/modeles/ServiceUserCentre.java +++ b/src/main/java/com/triz/trizservice/modeles/ServiceUserCentre.java @@ -9,6 +9,7 @@ import java.util.UUID; import javax.persistence.Basic; import javax.persistence.Column; import javax.persistence.Entity; +import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.Lob; @@ -34,6 +35,7 @@ public class ServiceUserCentre implements Serializable { @Id @Basic(optional = false) @NotNull + @GeneratedValue @Column(name = "id") private UUID id; @JoinColumn(name = "fk_centre", referencedColumnName = "id") diff --git a/src/main/java/com/triz/trizservice/modeles/ServicehistoriqueConnection.java b/src/main/java/com/triz/trizservice/modeles/ServicehistoriqueConnection.java index ddcf6bc..13e1ea6 100644 --- a/src/main/java/com/triz/trizservice/modeles/ServicehistoriqueConnection.java +++ b/src/main/java/com/triz/trizservice/modeles/ServicehistoriqueConnection.java @@ -61,6 +61,9 @@ public class ServicehistoriqueConnection implements Serializable { @JoinColumn(name = "fk_centre", referencedColumnName = "id") @ManyToOne private Centre fkCentre; + @Column(name = "last_activity") + @Temporal(TemporalType.TIMESTAMP) + private Date lastActivity; public ServicehistoriqueConnection() { } @@ -142,6 +145,12 @@ public class ServicehistoriqueConnection implements Serializable { this.fkCentre = fkCentre; } - + public Date getLastActivity() { + return lastActivity; + } + + public void setLastActivity(Date lastActivity) { + this.lastActivity = lastActivity; + } } diff --git a/src/main/java/com/triz/trizservice/security/impl/CostumSuccesHandler.java b/src/main/java/com/triz/trizservice/security/impl/CostumSuccesHandler.java index e15838d..13f1b46 100644 --- a/src/main/java/com/triz/trizservice/security/impl/CostumSuccesHandler.java +++ b/src/main/java/com/triz/trizservice/security/impl/CostumSuccesHandler.java @@ -18,11 +18,18 @@ import javax.servlet.http.HttpServletResponse; import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler; import org.springframework.security.core.Authentication; import com.triz.util.UtilURL; +import java.net.InetAddress; +import java.net.UnknownHostException; import java.util.Date; import java.util.List; import java.util.UUID; +import javax.faces.context.FacesContext; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.request; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.request; +import org.springframework.web.context.request.RequestAttributes; +import org.springframework.web.context.request.RequestContextHolder; /** * @@ -31,6 +38,8 @@ import org.springframework.stereotype.Service; @Service public class CostumSuccesHandler extends SavedRequestAwareAuthenticationSuccessHandler { + private HttpServletRequest requestTest; + @Autowired private TransactionService transactionService; @@ -44,27 +53,45 @@ public class CostumSuccesHandler extends SavedRequestAwareAuthenticationSuccessH @Override public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws ServletException, IOException { - + requestTest = request; setDefaultTargetUrl("/" + multiEtablissement()); + super.onAuthenticationSuccess(request, response, authentication); } - private void saveConnection(ServiceUser user, Centre etablissement) { + private void saveConnection(ServiceUser user, Centre etablissement) throws UnknownHostException { ServicehistoriqueConnection his = new ServicehistoriqueConnection(); his.setId(UUID.randomUUID()); his.setFkUser(user); his.setDate(new Date()); his.setHeur(new Date()); - his.setAdresseIp(""); + his.setLastActivity(new Date()); + + + String ip = InetAddress.getLocalHost().getHostAddress(); + + his.setAdresseIp(ip); his.setFkCentre(etablissement); transactionService.save(his); + RequestContextHolder.currentRequestAttributes() + .setAttribute( + "HISTORIQUE_CONNEXION_ID", + his.getId(), + RequestAttributes.SCOPE_SESSION); } - public String multiEtablissement() { + public String multiEtablissement() throws UnknownHostException { // useDistribution = UtilGetParametre.useTrizDistribution(); ServiceUser user = context.getCurrentUser(); + UserPresence.connect(user.getUserid()); + requestTest.getSession().setAttribute( + "CONNECTED_USER", + user.getUserid()); + System.out.println("user 22" + + UserPresence.isConnected(user.getUserid()) + ); System.out.println("-------------------- multi etablissement"); List listUserEtab = transactionService.getAllStockEtablissementFromUsersEtablissementByUser(user); System.out.println("-------------------- listUserEtab " + listUserEtab); diff --git a/src/main/java/com/triz/trizservice/security/impl/SessionListener.java b/src/main/java/com/triz/trizservice/security/impl/SessionListener.java new file mode 100644 index 0000000..d01f59d --- /dev/null +++ b/src/main/java/com/triz/trizservice/security/impl/SessionListener.java @@ -0,0 +1,27 @@ +package com.triz.trizservice.security.impl; + +import javax.servlet.http.HttpSessionEvent; +import javax.servlet.http.HttpSessionListener; + +public class SessionListener implements HttpSessionListener { + + @Override + public void sessionCreated(HttpSessionEvent se) { + } + + @Override + public void sessionDestroyed(HttpSessionEvent se) { + + Object userId + = se.getSession().getAttribute("CONNECTED_USER"); + + if (userId != null) { + + UserPresence.disconnect(userId.toString()); + + System.out.println( + "User disconnected : " + userId + ); + } + } +} diff --git a/src/main/java/com/triz/trizservice/security/impl/UserPresence.java b/src/main/java/com/triz/trizservice/security/impl/UserPresence.java new file mode 100644 index 0000000..39df9d3 --- /dev/null +++ b/src/main/java/com/triz/trizservice/security/impl/UserPresence.java @@ -0,0 +1,22 @@ +package com.triz.trizservice.security.impl; + +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; + +public class UserPresence { + + private static final Set CONNECTED_USERS + = ConcurrentHashMap.newKeySet(); + + public static void connect(String userId) { + CONNECTED_USERS.add(userId); + } + + public static void disconnect(String userId) { + CONNECTED_USERS.remove(userId); + } + + public static boolean isConnected(String userId) { + return CONNECTED_USERS.contains(userId); + } +} diff --git a/src/main/java/com/triz/trizservice/service/DaoService.java b/src/main/java/com/triz/trizservice/service/DaoService.java index cfaa0f4..e38c62f 100644 --- a/src/main/java/com/triz/trizservice/service/DaoService.java +++ b/src/main/java/com/triz/trizservice/service/DaoService.java @@ -17,6 +17,7 @@ import com.triz.trizservice.modeles.ServiceHistoriqueManipulation; import com.triz.trizservice.modeles.ServiceHistoriqueManipulation; import com.triz.trizservice.modeles.ServiceUserCentre; import com.triz.trizservice.modeles.Wilaya; +import java.io.Serializable; import java.util.List; import java.util.UUID; @@ -115,5 +116,9 @@ public interface DaoService { public int getNbrFonctionnaliteParGroupe(ServiceGroupe groupe); public ServiceFonctiongroupe getFonctiongroupeById(UUID id); + + public void save(final T object); + + public void delete(final T object); } diff --git a/src/main/java/com/triz/trizservice/service/TransactionService.java b/src/main/java/com/triz/trizservice/service/TransactionService.java index 9cb3c64..281820a 100644 --- a/src/main/java/com/triz/trizservice/service/TransactionService.java +++ b/src/main/java/com/triz/trizservice/service/TransactionService.java @@ -6,7 +6,6 @@ */ package com.triz.trizservice.service; - import com.triz.trizservice.modeles.Centre; import com.triz.trizservice.modeles.ServiceFonctiongroupe; import com.triz.trizservice.modeles.ServiceFonctionnaliter; @@ -19,6 +18,7 @@ import com.triz.trizservice.modeles.ServiceHistoriqueManipulation; import com.triz.trizservice.modeles.ServiceHistoriqueManipulation; import com.triz.trizservice.modeles.ServiceUserCentre; import com.triz.trizservice.modeles.Wilaya; +import java.io.Serializable; import java.util.List; import java.util.UUID; @@ -29,92 +29,96 @@ import java.util.UUID; public interface TransactionService { public List getAllUsers(); - + public List getAllFonctionalite(); - + public boolean isItTimeToChangePass(); - - public ServiceUser getUserById(String userId) ; - + + public ServiceUser getUserById(String userId); + public List getGroupsByUser(ServiceUser user); - + public ServiceMember getGroupByUser(ServiceUser user); - + public void saveUser(ServiceUser object); - + public ServiceGroupe getGroupsById(UUID id); - + public void saveGroup(ServiceGroupe object); - + public void saveMembership(ServiceMember object); - + public void saveFonctionsGroupes(ServiceFonctiongroupe object); - + public ServicehistoriqueConnection getLastHistoriqueConnectionByUsers(ServiceUser user); - + public ServicehistoriqueConnection getLastHistoriqueConnectionById(Long id); - + public void save(ServicehistoriqueConnection historique); - + public List getAllGroups(); - + public List getAllMembershipByUser(ServiceUser user); - + public List getAllFonctionsGroupesByGroupe(ServiceGroupe group); - + public List getAllMembership(); - + public ServiceFonctionnaliter getFonctionnaliteById(String id); - + public List getAllFonctionnaliteServer(); - + public void save(ServiceFonctionnaliter object); - + public void save(ServiceHistoriqueManipulation object); - + public List getAllFonctionsGroups(); - + public List getFonctionServerByGroups(ServiceGroupe groupe); - + public List getFonctionServerByUsers(ServiceUser user); - + public ServiceFonctionnaliter getFonctionnaliteServerByFonction(String fonction); - + public int genererBDD(String chemain, String nomSql); - + public List getAllMemberShipByUser(ServiceUser user); - + public ServiceFonctiongroupe getFonctionGroupByFonctionIdAndGoupe(String id, ServiceGroupe group); - + public void save(ServiceIncrementation object); - + public ServiceIncrementation getIncrementation(); - + public ServiceIncrementation getFirstIncrementation(); - + public void save(ServiceGroupe object); - + public void removeFonctionsGroupes(ServiceFonctiongroupe fonctionGroupe); - + public List getListHistoriqueConnectionByUsers(ServiceUser user); - + public List getListHistoriqueManipulationByUsersByEntreprise(ServiceUser user); - + public Centre getEtablissementById(Object id); - + public List getAllStockEtablissementFromUsersEtablissementByUser(ServiceUser user); - - public ServiceUserCentre getAllUserCentreByCentreByUser(Centre etablissement,ServiceUser user); - - public List getFonctionServerByUsersByEtablissement(ServiceUser user,Centre etablissement); - + + public ServiceUserCentre getAllUserCentreByCentreByUser(Centre etablissement, ServiceUser user); + + public List getFonctionServerByUsersByEtablissement(ServiceUser user, Centre etablissement); + public ServicehistoriqueConnection getLastStockHistoriqueConnectionByUsers(ServiceUser user); - + public List getAllWilaya(); - + public int getNbrUtilisateurParGroupe(ServiceGroupe groupe); - + public int getNbrFonctionnaliteParGroupe(ServiceGroupe groupe); - + public ServiceFonctiongroupe getFonctiongroupeById(UUID id); + + public void save(final T object); + + public void delete(final T object); } diff --git a/src/main/java/com/triz/trizservice/service/impl/DaoServiceImpl.java b/src/main/java/com/triz/trizservice/service/impl/DaoServiceImpl.java index 97e2f52..cad97f5 100644 --- a/src/main/java/com/triz/trizservice/service/impl/DaoServiceImpl.java +++ b/src/main/java/com/triz/trizservice/service/impl/DaoServiceImpl.java @@ -17,6 +17,7 @@ import com.triz.trizservice.modeles.ServicehistoriqueConnection; import com.triz.trizservice.modeles.ServiceHistoriqueManipulation; import com.triz.trizservice.modeles.ServiceUserCentre; import com.triz.trizservice.modeles.Wilaya; +import java.io.Serializable; import java.util.Date; import java.util.List; import java.util.UUID; @@ -242,7 +243,7 @@ public class DaoServiceImpl implements DaoService { @Override public List getListHistoriqueManipulationByUsersByEntreprise(ServiceUser user) { return getCurrentSession() - .createQuery("select e from ServiceHistoriqueManipulation e where e.fkManipulateur = :user", ServiceHistoriqueManipulation.class) + .createQuery("select e from ServiceHistoriqueManipulation e where e.fkUser = :user", ServiceHistoriqueManipulation.class) .setParameter("user", user) .list(); } @@ -296,12 +297,23 @@ public class DaoServiceImpl implements DaoService { @Override public int getNbrFonctionnaliteParGroupe(ServiceGroupe groupe) { - Long count = (Long) getCurrentSession().createQuery("select count(m) from ServiceGroupe m, ServiceFonctiongroupe f where m.id=f.fkGroupe.id and m.id=:groupe ").setParameter("groupe", groupe.getId()).uniqueResult(); + Long count = (Long) getCurrentSession().createQuery("select count(m) from ServiceGroupe m, ServiceFonctiongroupe f where m.id=f.fkGroupe.id and m.id=:groupe ").setParameter("groupe", groupe.getId()).uniqueResult(); return count.intValue(); } @Override public ServiceFonctiongroupe getFonctiongroupeById(UUID id) { - return (ServiceFonctiongroupe)getCurrentSession().createQuery("select m from ServiceFonctiongroupe m where m.id=:id ").setParameter("id", id).setMaxResults(1).uniqueResult(); + return (ServiceFonctiongroupe) getCurrentSession().createQuery("select m from ServiceFonctiongroupe m where m.id=:id ").setParameter("id", id).setMaxResults(1).uniqueResult(); + } + + @Override + public void save(final T object) { + getCurrentSession().saveOrUpdate(object); + } + + @Override + public void delete(final T object) { + System.out.println("delete"); + getCurrentSession().delete(object); } } diff --git a/src/main/java/com/triz/trizservice/service/impl/TransactionServiceImpl.java b/src/main/java/com/triz/trizservice/service/impl/TransactionServiceImpl.java index 3fbd92a..0ddc947 100644 --- a/src/main/java/com/triz/trizservice/service/impl/TransactionServiceImpl.java +++ b/src/main/java/com/triz/trizservice/service/impl/TransactionServiceImpl.java @@ -19,6 +19,7 @@ import com.triz.trizservice.modeles.ServiceUserCentre; import com.triz.trizservice.modeles.Wilaya; import com.triz.trizservice.service.DaoService; import com.triz.trizservice.service.TransactionService; +import java.io.Serializable; import java.util.List; import java.util.UUID; import org.springframework.beans.factory.annotation.Autowired; @@ -31,277 +32,287 @@ import org.springframework.transaction.annotation.Transactional; */ @Service public class TransactionServiceImpl implements TransactionService { - + @Autowired DaoService daoService; - + @Transactional("transactionManager") @Override public boolean isItTimeToChangePass() { return daoService.isItTimeToChangePass(); } - + @Transactional("transactionManager") @Override public ServiceUser getUserById(String userId) { return daoService.getUserById(userId); } - + @Transactional("transactionManager") @Override public List getGroupsByUser(ServiceUser user) { return daoService.getGroupsByUser(user); } - + @Transactional("transactionManager") @Override public ServiceMember getGroupByUser(ServiceUser user) { return daoService.getGroupByUser(user); } - + @Transactional("transactionManager") @Override public void saveUser(ServiceUser object) { daoService.saveUser(object); } - + @Transactional("transactionManager") @Override public ServiceGroupe getGroupsById(UUID id) { return daoService.getGroupsById(id); } - + @Transactional("transactionManager") @Override public void saveGroup(ServiceGroupe object) { daoService.saveGroup(object); } - + @Transactional("transactionManager") @Override public void saveMembership(ServiceMember object) { daoService.saveMembership(object); } - + @Transactional("transactionManager") @Override public void saveFonctionsGroupes(ServiceFonctiongroupe object) { daoService.saveFonctionsGroupes(object); } - + @Transactional("transactionManager") @Override public List getAllFonctionalite() { return daoService.getAllFonctionalite(); } - + @Transactional("transactionManager") @Override public ServicehistoriqueConnection getLastHistoriqueConnectionByUsers(ServiceUser user) { return daoService.getLastHistoriqueConnectionByUsers(user); } - + @Transactional("transactionManager") @Override public ServicehistoriqueConnection getLastHistoriqueConnectionById(Long id) { return daoService.getLastHistoriqueConnectionById(id); } - + @Transactional("transactionManager") @Override public void save(ServicehistoriqueConnection historique) { daoService.save(historique); } - + @Transactional("transactionManager") @Override public List getAllGroups() { return daoService.getAllGroups(); } - + @Transactional("transactionManager") @Override public List getAllMembershipByUser(ServiceUser user) { return daoService.getAllMembershipByUser(user); } - + @Transactional("transactionManager") @Override public List getAllFonctionsGroupesByGroupe(ServiceGroupe group) { return daoService.getAllFonctionsGroupesByGroupe(group); } - + @Transactional("transactionManager") @Override public List getAllMembership() { return daoService.getAllMembership(); } - + @Transactional("transactionManager") @Override public ServiceFonctionnaliter getFonctionnaliteById(String id) { return daoService.getFonctionnaliteById(id); } - + @Transactional("transactionManager") @Override public List getAllFonctionnaliteServer() { return daoService.getAllFonctionnaliteServer(); } - + @Transactional("transactionManager") @Override public void save(ServiceFonctionnaliter object) { daoService.save(object); } - + @Transactional("transactionManager") @Override public void save(ServiceHistoriqueManipulation object) { daoService.save(object); } - + @Transactional("transactionManager") @Override public List getAllFonctionsGroups() { return daoService.getAllFonctionsGroups(); } - + @Transactional("transactionManager") @Override public List getFonctionServerByGroups(ServiceGroupe groupe) { return daoService.getFonctionServerByGroups(groupe); } - + @Transactional("transactionManager") @Override public List getFonctionServerByUsers(ServiceUser user) { return daoService.getFonctionServerByUsers(user); } - + @Transactional("transactionManager") @Override public ServiceFonctionnaliter getFonctionnaliteServerByFonction(String fonction) { return daoService.getFonctionnaliteServerByFonction(fonction); } - + public int genererBDD(String chemain, String nomSql) { return daoService.genererBDD(chemain, nomSql); } - + @Transactional("transactionManager") @Override public List getAllMemberShipByUser(ServiceUser user) { return daoService.getAllMemberShipByUser(user); } - + @Transactional("transactionManager") @Override public ServiceFonctiongroupe getFonctionGroupByFonctionIdAndGoupe(String id, ServiceGroupe group) { return daoService.getFonctionGroupByFonctionIdAndGoupe(id, group); } - + @Transactional("transactionManager") @Override public void save(ServiceIncrementation object) { daoService.save(object); } - + @Transactional("transactionManager") @Override public ServiceIncrementation getIncrementation() { return daoService.getIncrementation(); } - + @Transactional("transactionManager") @Override public ServiceIncrementation getFirstIncrementation() { return daoService.getFirstIncrementation(); } - + @Transactional("transactionManager") @Override public void save(ServiceGroupe object) { daoService.save(object); } - + @Transactional("transactionManager") @Override public void removeFonctionsGroupes(ServiceFonctiongroupe fonctionGroupe) { daoService.removeFonctionsGroupes(fonctionGroupe); } - + @Transactional("transactionManager") @Override public List getListHistoriqueConnectionByUsers(ServiceUser user) { return daoService.getListHistoriqueConnectionByUsers(user); } - + @Transactional("transactionManager") @Override public List getListHistoriqueManipulationByUsersByEntreprise(ServiceUser user) { return daoService.getListHistoriqueManipulationByUsersByEntreprise(user); } - + @Transactional("transactionManager") @Override public List getAllUsers() { return daoService.getAllUsers(); } - + @Transactional("transactionManager") @Override public Centre getEtablissementById(Object id) { return daoService.getEtablissementById(id); } - + @Transactional("transactionManager") @Override public List getAllStockEtablissementFromUsersEtablissementByUser(ServiceUser user) { return daoService.getAllStockEtablissementFromUsersEtablissementByUser(user); } - + @Transactional("transactionManager") @Override - public ServiceUserCentre getAllUserCentreByCentreByUser(Centre etablissement,ServiceUser user){ + public ServiceUserCentre getAllUserCentreByCentreByUser(Centre etablissement, ServiceUser user) { return daoService.getAllUserCentreByCentreByUser(etablissement, user); } - + @Transactional("transactionManager") @Override public List getFonctionServerByUsersByEtablissement(ServiceUser user, Centre etablissement) { return daoService.getFonctionServerByUsersByEtablissement(user, etablissement); } - + @Transactional("transactionManager") @Override public ServicehistoriqueConnection getLastStockHistoriqueConnectionByUsers(ServiceUser user) { return daoService.getLastHistoriqueConnectionByUsers(user); } - - @Transactional("transactionManager") @Override public List getAllWilaya() { - return daoService.getAllWilaya(); + return daoService.getAllWilaya(); } - + @Transactional("transactionManager") @Override public int getNbrUtilisateurParGroupe(ServiceGroupe groupe) { - return daoService.getNbrUtilisateurParGroupe(groupe); + return daoService.getNbrUtilisateurParGroupe(groupe); } - + @Transactional("transactionManager") @Override public int getNbrFonctionnaliteParGroupe(ServiceGroupe groupe) { - return daoService.getNbrFonctionnaliteParGroupe(groupe); + return daoService.getNbrFonctionnaliteParGroupe(groupe); } - + @Transactional("transactionManager") @Override public ServiceFonctiongroupe getFonctiongroupeById(UUID id) { - return daoService.getFonctiongroupeById(id); + return daoService.getFonctiongroupeById(id); + } + + @Transactional("transactionManager") + @Override + public void save(T object) { + daoService.save(object); + } + + @Transactional("transactionManager") + @Override + public void delete(T object) { + daoService.delete(object); } } diff --git a/src/main/resources/db/migration/V000__main_schema.sql b/src/main/resources/db/migration/V000__main_schema.sql index d80b64e..3f47a8d 100644 --- a/src/main/resources/db/migration/V000__main_schema.sql +++ b/src/main/resources/db/migration/V000__main_schema.sql @@ -585,7 +585,7 @@ SELECT 'admin', id FROM service_groupe WHERE nom_groupe = 'admin' LIMIT 1; -- --- Fonctionnalite "User" --- INSERT INTO service_fonctionnaliter (id,nom) -VALUES ('User','User'); +VALUES ('user','User'); -- --- Droits du groupe admin sur la fonctionnalite "User" --- INSERT INTO service_fonctiongroupe (fk_groupe, fk_fonctionnalite, can_create, can_update, can_update_date, can_delete) @@ -623,3 +623,6 @@ INSERT INTO service_fonctionnaliter (id, nom) VALUES ALTER TABLE service_fonctiongroupe ADD COLUMN can_see boolean; + +INSERT INTO service_fonctionnaliter (id, nom) VALUES +('modifier_groupe', 'Modifier le groupe'); \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/layout/sections/topbar.xhtml b/src/main/webapp/WEB-INF/layout/sections/topbar.xhtml index ebc5117..8b7597d 100644 --- a/src/main/webapp/WEB-INF/layout/sections/topbar.xhtml +++ b/src/main/webapp/WEB-INF/layout/sections/topbar.xhtml @@ -9,7 +9,6 @@ + + + + +
+ +
+ +
+ +
+ +
+ +
+ + + + + +
+ +
+
+ #{fn:substring(formUserBean.userSelected.nom,0,1)}#{fn:substring(formUserBean.userSelected.prenom,0,1)}
- - - - - - - - + + +
+ +
- - - - - - - +
+
+ #{msg['distribution.page.user.nom']} + +
- - - - - - - +
+ #{msg['distribution.page.user.prenom']} + +
- - - - - - - - +
+ #{msg['stock.page.fournisseur.Telephone']} + +
- +
+ #{msg['stock.page.fournisseur.mail']} + +
+
- - - - - - - - - +
- +
+
+ #{msg['distribution.page.client.actif']} + + + #{formUserBean.userSelected.actif eq 'true' ? 'Actif' : 'Inactif'} + + +
+
- +
+ +
+
+ #{msg['distribution.page.user.groupe']} + +
+ +
+ Nom d'utilisateur + +
+
+
+ + + + +
+ #{msg['distribution.page.user.nom']} +
+ +
+
+ +
+ #{msg['distribution.page.user.prenom']} +
+ +
+
+ +
+ #{msg['stock.page.fournisseur.Telephone']} +
+ +
+
+ +
+ #{msg['stock.page.fournisseur.mail']} +
+ +
+
+ +
+ +
+ #{msg['distribution.page.client.actif']} +
+ + + + +
+
+ +
+ +
+ #{msg['distribution.page.user.groupe']} +
+ + + + + +
+
+ +
+ Nom d'utilisateur +
+ +
+
+ +
+ #{msg['distribution.page.user.password']} +
+ +
+
+ + +
+ Confirmation MP +
+ + + + + +
+
+ + +
- - - - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - - - - +
+ + + - - - - - - - +
+ #{msg['distribution.page.user.historique.connexion']} +
+ + + + + + +
+
- - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + + + + + + + + + + +
+ + + +
+ #{msg['distribution.page.consulter.historiqueManip']} +
+ + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ \ No newline at end of file diff --git a/src/main/webapp/views/user/list.xhtml b/src/main/webapp/views/user/list.xhtml index 4f8c493..e254a5a 100644 --- a/src/main/webapp/views/user/list.xhtml +++ b/src/main/webapp/views/user/list.xhtml @@ -13,9 +13,9 @@ - + - -
- - -
-
+ +
+ +
+ + +
+
+ #{msg['distribution.page.Utilisateurs']} +
+
+ + + + + + + + + + + + + + + + +
-
- - - - - - + -
-
- + + + - - - + + + - - - + + + - - - - - - - - - - + + + - + + + - - - + + + + + - + + + + + - -
- + + + + + + + +
+ +
- + \ No newline at end of file