NIFI-4224:

- Ensuring the parent permissions are used when building the variable registry for a process group ancestry. This closes #2116.
This commit is contained in:
Matt Gilman 2017-08-30 11:02:48 -04:00 committed by Mark Payne
parent e2b8be53cb
commit 3de0b8edff

View File

@ -16,31 +16,7 @@
*/ */
package org.apache.nifi.web; package org.apache.nifi.web;
import java.nio.charset.StandardCharsets; import com.google.common.collect.Sets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.ListIterator;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.UUID;
import java.util.function.Function;
import java.util.function.Supplier;
import java.util.stream.Collectors;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Response;
import org.apache.nifi.action.Action; import org.apache.nifi.action.Action;
import org.apache.nifi.action.Component; import org.apache.nifi.action.Component;
import org.apache.nifi.action.FlowChangeAction; import org.apache.nifi.action.FlowChangeAction;
@ -247,7 +223,29 @@ import org.apache.nifi.web.util.SnippetUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.google.common.collect.Sets; import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Response;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.ListIterator;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.UUID;
import java.util.function.Function;
import java.util.function.Supplier;
import java.util.stream.Collectors;
/** /**
* Implementation of NiFiServiceFacade that performs revision checking. * Implementation of NiFiServiceFacade that performs revision checking.
@ -3240,7 +3238,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
if (includeAncestorGroups) { if (includeAncestorGroups) {
ProcessGroup parent = processGroup.getParent(); ProcessGroup parent = processGroup.getParent();
while (parent != null) { while (parent != null) {
final PermissionsDTO parentPerms = dtoFactory.createPermissionsDto(processGroup); final PermissionsDTO parentPerms = dtoFactory.createPermissionsDto(parent);
if (Boolean.TRUE.equals(parentPerms.getCanRead())) { if (Boolean.TRUE.equals(parentPerms.getCanRead())) {
final VariableRegistryDTO parentRegistryDto = dtoFactory.createVariableRegistryDto(parent); final VariableRegistryDTO parentRegistryDto = dtoFactory.createVariableRegistryDto(parent);
final Set<VariableEntity> parentVariables = parentRegistryDto.getVariables(); final Set<VariableEntity> parentVariables = parentRegistryDto.getVariables();