From: mordicus Date: Mon, 3 Aug 2015 15:55:01 +0000 (+0200) Subject: Group management X-Git-Tag: gde-v0.1~29 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=50e79328f78cb2feaf62867811cbddf4a82bf1d8;p=modules%2Fgde.git Group management --- diff --git a/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/UserDAO.java b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/UserDAO.java index bc3276b..48016c0 100644 --- a/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/UserDAO.java +++ b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/UserDAO.java @@ -2,6 +2,8 @@ package com.edf.gde.ejb; import com.edf.gde.entities.Group; import com.edf.gde.entities.User; +import com.edf.gde.entities.UserGroup; +import java.util.List; import javax.ejb.Stateless; import javax.ejb.LocalBean; import javax.persistence.EntityManager; @@ -56,6 +58,7 @@ public class UserDAO { /** * Find group + * * @param name * @return null if the group does not exists */ @@ -72,15 +75,37 @@ public class UserDAO { } public boolean addToGroup(long groupId, long userId) { - /* TODO : add code ! */ - return true; + if (!isInGroup(groupId, userId)) { + UserGroup userGroup = new UserGroup(); + userGroup.setGroupId(groupId); + userGroup.setUserId(userId); + em.persist(userGroup); + return true; + } + return false; } - + public boolean removeFromGroup(long groupId, long userId) { - /* TODO : add code ! */ + Query q = em.createNamedQuery("UserGroup.findByGroupIdUserId"); + q.setParameter("groupId", groupId); + q.setParameter("userId", userId); + List l = q.getResultList(); + if (l.isEmpty()) { + return false; + } + UserGroup ug = l.get(0); + em.remove(ug); return true; } - + + public boolean isInGroup(long groupId, long userId) { + Query q = em.createNamedQuery("UserGroup.findByGroupIdUserId"); + q.setParameter("groupId", groupId); + q.setParameter("userId", userId); + List l = q.getResultList(); + return !l.isEmpty(); + } + /** * Find user by user name (login) *