@Override public List<Permission> listPermissions(IdentityContext context, Class<?> resourceClass, Serializable identifier) { return listPermissions(context, resourceClass, identifier, null); }
@Override public List<Permission> listPermissions(IdentityContext context, Class<?> resourceClass, Serializable identifier) { return listPermissions(context, resourceClass, identifier, null); }
@Override public List<Permission> listPermissions(IdentityContext context, Set<Object> resources, String operation) { List<Permission> permissions = new ArrayList<Permission>(); for (Object resource : resources) { permissions.addAll(listPermissions(context, resource, operation)); } return permissions; }
@Override public List<Permission> listPermissions(IdentityContext context, Set<Object> resources, String operation) { List<Permission> permissions = new ArrayList<Permission>(); for (Object resource : resources) { permissions.addAll(listPermissions(context, resource, operation)); } return permissions; }
@Override public List<Permission> listPermissions(IdentityContext context, Object resource) { return listPermissions(context, new IdentityPermission(resource, null, null)); }
@Override public List<Permission> listPermissions(IdentityContext context, Object resource, String operation) { return listPermissions(context, new IdentityPermission(resource, null, operation)); }
@Override public List<Permission> listPermissions(IdentityContext context, Class<?> resourceClass, Serializable identifier, String operation) { return listPermissions(context, new IdentityPermission(resourceClass, identifier, null, operation)); }
@Override public List<Permission> listPermissions(IdentityContext context, Object resource, String operation) { return listPermissions(context, new IdentityPermission(resource, null, operation)); }
@Override public List<Permission> listPermissions(IdentityContext context, IdentityType identityType) { return listPermissions(context, new IdentityPermission(null, identityType, null)); }
@Override public List<Permission> listPermissions(IdentityContext context, Object resource) { return listPermissions(context, new IdentityPermission(resource, null, null)); }
@Override public List<Permission> listPermissions(IdentityContext context, IdentityType identityType) { return listPermissions(context, new IdentityPermission(null, identityType, null)); }
@Override public List<Permission> listPermissions(IdentityContext context, Class<?> resourceClass, Serializable identifier, String operation) { return listPermissions(context, new IdentityPermission(resourceClass, identifier, null, operation)); }
@Override public boolean grantPermission(IdentityContext context, IdentityType assignee, Object resource, String operation) { Partition partition = assignee.getPartition(); FilePartition filePartition = resolve(partition.getClass(), partition.getName()); Class resourceClass = context.getPermissionHandlerPolicy().getResourceClass(resource); Serializable resourceIdentifier = context.getPermissionHandlerPolicy().getIdentifier(resource); List<Permission> existingPermissions = listPermissions(context, new IdentityPermission(resource, assignee, null)); if (existingPermissions.isEmpty()) { List<FilePermission> permissions = filePartition.getPermissions().get(assignee.getId()); if (permissions == null) { permissions = new ArrayList<FilePermission>(); filePartition.getPermissions().put(assignee.getId(), permissions); } FilePermission filePermission = new FilePermission(assignee, new IdentityPermission(resourceClass, resourceIdentifier .toString(), assignee, operation)); permissions.add(filePermission); } else { Permission permission = existingPermissions.get(0); revokePermission(context, assignee, resource, null); String newOperations = PermissionUtil.addOperation(permission.getOperation(), operation); grantPermission(context, assignee, resource, newOperations); } this.fileDataSource.flushPermissions(filePartition); return true; }
@Override public boolean grantPermission(IdentityContext context, IdentityType assignee, Object resource, String operation) { Partition partition = assignee.getPartition(); FilePartition filePartition = resolve(partition.getClass(), partition.getName()); Class resourceClass = context.getPermissionHandlerPolicy().getResourceClass(resource); Serializable resourceIdentifier = context.getPermissionHandlerPolicy().getIdentifier(resource); List<Permission> existingPermissions = listPermissions(context, new IdentityPermission(resource, assignee, null)); if (existingPermissions.isEmpty()) { List<FilePermission> permissions = filePartition.getPermissions().get(assignee.getId()); if (permissions == null) { permissions = new ArrayList<FilePermission>(); filePartition.getPermissions().put(assignee.getId(), permissions); } FilePermission filePermission = new FilePermission(assignee, new IdentityPermission(resourceClass, resourceIdentifier .toString(), assignee, operation)); permissions.add(filePermission); } else { Permission permission = existingPermissions.get(0); revokePermission(context, assignee, resource, null); String newOperations = PermissionUtil.addOperation(permission.getOperation(), operation); grantPermission(context, assignee, resource, newOperations); } this.fileDataSource.flushPermissions(filePartition); return true; }