@Override public boolean revokePermission(IdentityContext context, IdentityType assignee, Object resource, String operation) { EntityManager em = getEntityManager(context); List<EntityMapper> mappers = new ArrayList<EntityMapper>(); Class<?> resourceClass = context.getPermissionHandlerPolicy().getResourceClass(resource); Serializable resourceIdentifier = context.getPermissionHandlerPolicy().getIdentifier(resource); if (resourceClass != null) { mappers.add(getPermissionMapperForResource(resourceClass)); } else { mappers.addAll(getPermissionMappers()); } for (EntityMapper mapper : mappers) { // We first attempt to lookup an existing entity Object entity = lookupPermissionEntity(context, mapper, assignee, resourceClass, resourceIdentifier); // If there's no entity found then there's nothing to do if (entity != null) { PermissionOperationSet operationSet = new PermissionOperationSet(entity, resourceClass, mapper); operationSet.removeOperation(operation); Set<String> operations = operationSet.getOperations(); if (operations.isEmpty()) { em.remove(entity); } else { em.merge(entity); } return true; } } return false; }
@Override public boolean revokePermission(IdentityContext context, IdentityType assignee, Object resource, String operation) { EntityManager em = getEntityManager(context); List<EntityMapper> mappers = new ArrayList<EntityMapper>(); Class<?> resourceClass = context.getPermissionHandlerPolicy().getResourceClass(resource); Serializable resourceIdentifier = context.getPermissionHandlerPolicy().getIdentifier(resource); if (resourceClass != null) { mappers.add(getPermissionMapperForResource(resourceClass)); } else { mappers.addAll(getPermissionMappers()); } for (EntityMapper mapper : mappers) { // We first attempt to lookup an existing entity Object entity = lookupPermissionEntity(context, mapper, assignee, resourceClass, resourceIdentifier); // If there's no entity found then there's nothing to do if (entity != null) { PermissionOperationSet operationSet = new PermissionOperationSet(entity, resourceClass, mapper); operationSet.removeOperation(operation); Set<String> operations = operationSet.getOperations(); if (operations.isEmpty()) { em.remove(entity); } else { em.merge(entity); } return true; } } return false; }
PermissionOperationSet opSet = new PermissionOperationSet(result, actualResourceClass, mapper); String operation = query.getOperation(); Set<String> operationsToreturn;
PermissionOperationSet opSet = new PermissionOperationSet(result, actualResourceClass, mapper); String operation = query.getOperation(); Set<String> operationsToreturn;
PermissionOperationSet operationSet = new PermissionOperationSet(entity, resourceClass, mapper); operationSet.appendOperation(operation); PermissionOperationSet operationSet = new PermissionOperationSet(entity, resourceClass, mapper); operationSet.appendOperation(operation); em.merge(entity);
PermissionOperationSet operationSet = new PermissionOperationSet(entity, resourceClass, mapper); operationSet.appendOperation(operation); PermissionOperationSet operationSet = new PermissionOperationSet(entity, resourceClass, mapper); operationSet.appendOperation(operation); em.merge(entity);