From eec906673daba1fa4c90453384ab91c942061f1b Mon Sep 17 00:00:00 2001 From: Kavoos Bojnourdi Date: Mon, 10 Aug 2015 19:46:35 +0200 Subject: [PATCH] - First checkPermission implementation. Not optimized for now. --- .../com/edf/gde/common/PermissionManager.java | 41 +++++++++++++++---- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/common/PermissionManager.java b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/common/PermissionManager.java index 9118cd5..b30ee3d 100644 --- a/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/common/PermissionManager.java +++ b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/common/PermissionManager.java @@ -1,28 +1,55 @@ package com.edf.gde.common; +import com.edf.gde.entities.GroupPermission; +import com.edf.gde.entities.UserGroup; +import java.util.List; import javax.persistence.EntityManager; +import javax.persistence.Query; /** * * @author Kavoos */ public class PermissionManager { + /** * MAP - * K = Service name - * V = Set of group Id + * K = Service name V = Set of group Id */ - + private EntityManager em; + public PermissionManager(EntityManager em) { this.em = em; } - - public synchronized void addGroup(long groupId, String serviceName, String methodName) { + + public synchronized void addGroup(long groupId, String serviceName, int methodIndex) { + GroupPermission groupPermission = new GroupPermission(); + groupPermission.setMethodIndex(methodIndex); + groupPermission.setServiceName(serviceName); + groupPermission.setGroupId(groupId); + em.persist(groupPermission); } - public synchronized boolean checkPermission(long userId, String serviceName, String methodeName) { + public synchronized boolean checkPermission(long userId, String serviceName, int methodIndex) { + Query query = em.createNamedQuery("UserGroup.findByUserId"); + query.setParameter("userId", userId); + List userGroups = query.getResultList(); + + for (UserGroup ug : userGroups) { + Query gQuery = em.createNamedQuery("GroupPermission.findPermission"); + gQuery.setParameter("groupId", ug.getGroupId()); + gQuery.setParameter("serviceName", serviceName); + gQuery.setParameter("methodIndex", methodIndex); + + List gps = gQuery.getResultList(); + if (gps.size() > 0) { + /* If GroupPermission object exists with this parameters then return true */ + return true; + } + } return false; + } - + } -- 2.39.2