Github user mcgilman commented on a diff in the pull request:
https://github.com/apache/nifi/pull/2515#discussion_r173869295
--- Diff:
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/coordination/http/endpoints/CurrentUserEndpointMerger.java
---
@@ -53,6 +54,23 @@ protected void mergeResponses(final CurrentUserEntity
clientEntity, final Map<No
mergePermissions(clientEntity.getPoliciesPermissions(),
entity.getPoliciesPermissions());
mergePermissions(clientEntity.getProvenancePermissions(),
entity.getProvenancePermissions());
mergePermissions(clientEntity.getTenantsPermissions(),
entity.getTenantsPermissions());
+ mergePermissions(clientEntity.getSystemPermissions(),
entity.getSystemPermissions());
+ mergePermissions(clientEntity.getTenantsPermissions(),
entity.getTenantsPermissions());
+
+ final Set<ComponentRestrictionPermissionDTO>
clientEntityComponentRestrictionsPermissions =
clientEntity.getComponentRestrictionPermissions();
+ final Set<ComponentRestrictionPermissionDTO>
entityComponentRestrictionsPermissions =
entity.getComponentRestrictionPermissions();
+
+ // only retain the component restriction permissions in
common
+
clientEntityComponentRestrictionsPermissions.retainAll(entityComponentRestrictionsPermissions);
+
+ // merge the component restriction permissions
+
clientEntityComponentRestrictionsPermissions.forEach(clientEntityPermission -> {
+ final ComponentRestrictionPermissionDTO
entityPermission =
entityComponentRestrictionsPermissions.stream().filter(entityComponentRestrictionsPermission
-> {
+ return
entityComponentRestrictionsPermission.getRequiredPermission().getId().equals(clientEntityPermission.getRequiredPermission().getId());
+ }).findFirst().orElse(null);
--- End diff --
Because we're doing a retainAll right before this we know that both
collections will each have an entry for the current clientEntityPermission. I
will update to use get() instead.
---