import java.util.HashSet;
import java.util.Map;
import java.util.Set;
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
/**
*
/**
* MAP<K,V>
* K = Service name
- * V = Set of user Id
+ * V = Set of group Id
*/
- Map<String, Set<Long>> userPermissions;
-
- public PermissionManager() {
- userPermissions = new HashMap<>();
+ private EntityManager em;
+ public PermissionManager(EntityManager em) {
+ this.em = em;
}
- public synchronized void addUser(String serviceName, long userId) {
- Set<Long> users = userPermissions.get(serviceName);
- if (users == null) {
- users = new HashSet<>();
- users.add(userId);
- userPermissions.put(serviceName, users);
- } else {
- users.add(userId);
- }
+ public synchronized void addGroup(long groupId, String serviceName, String methodName) {
}
- public synchronized boolean isValid(String serviceName, long userId) {
- Set<Long> users = userPermissions.get(serviceName);
- if (users == null) {
- return false;
- }
- return users.contains(userId);
+ public synchronized boolean checkPermission(long userId, String serviceName, String methodeName) {
+ return false;
}
}
@PostConstruct
private void init() {
userFiles = new HashMap<>();
- permissionManager = new PermissionManager();
+ permissionManager = new PermissionManager(em);
}
/**
*
* @author Kavoos
*/
-@Entity(name = "UserPermission")
-@Table(name = "USERPERMISSIONS")
+@Entity(name = "GroupPermission")
+@Table(name = "GROUPPERMISSIONS ")
@NamedQueries({
- @NamedQuery(name = "UserPermission.findAll", query = "SELECT u FROM User u"),
- @NamedQuery(name = "UserPermission.findById", query = "SELECT u FROM User u where u.id=:id"),
- @NamedQuery(name = "UserPermission.findByName", query = "SELECT u FROM User u where u.name=:username")
+ @NamedQuery(name = "GroupPermission.findAll", query = "SELECT g FROM GroupPermission g"),
+ @NamedQuery(name = "GroupPermission.findById", query = "SELECT g FROM GroupPermission g where g.id=:id"),
+ @NamedQuery(name = "GroupPermission.findByName", query = "SELECT g FROM GroupPermission g where g.name=:username"),
+ @NamedQuery(name = "GroupPermission.findPermission", query = "SELECT g from GroupPermission g where "
+ + "g.groupId=:groupId "
+ + "and g.serviceName=:serviceName "
+ + "and g.methodName=:methodName")
})
-public class UserPermission implements Serializable {
+public class GroupPermission implements Serializable {
@Id
@Basic(optional = false)
@Column(name="methodName")
String methodName;
- public UserPermission() {
+ public GroupPermission() {
}
public Long getId() {
);
create index usergroup_groupId_idx ON USERGROUP(groupId);
-DROP TABLE IF EXISTS USERPERMISSIONS CASCADE;
-CREATE TABLE USERPERMISSIONS (
+DROP TABLE IF EXISTS GROUPPERMISSIONS CASCADE;
+CREATE TABLE GROUPPERMISSIONS (
id bigint NOT NULL PRIMARY KEY,
groupId bigint references GROUP_(id),
serviceName varchar(255) not null,