This is an automated email from the ASF dual-hosted git repository. mcgilman pushed a commit to branch NIFI-15323 in repository https://gitbox.apache.org/repos/asf/nifi.git
commit 2037a055dbca753e725b16bba6fca083d4c50ecb Author: Matt Gilman <[email protected]> AuthorDate: Wed Dec 10 12:25:39 2025 -0500 NIFI-15323: Adding operate permissions to the ConnectorEntity. --- .../nifi/web/api/entity/ConnectorEntity.java | 8 +++++--- .../apache/nifi/web/StandardNiFiServiceFacade.java | 24 +++++++++++++++------- .../org/apache/nifi/web/api/dto/EntityFactory.java | 4 +++- 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ConnectorEntity.java b/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ConnectorEntity.java index 1e533823fa..0cf02aaa00 100644 --- a/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ConnectorEntity.java +++ b/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ConnectorEntity.java @@ -28,6 +28,7 @@ import org.apache.nifi.web.api.dto.status.ConnectorStatusDTO; public class ConnectorEntity extends ComponentEntity implements Permissible<ConnectorDTO>, OperationPermissible { private ConnectorDTO component; private ConnectorStatusDTO status; + private PermissionsDTO operatePermissions; @Override @Schema(description = "The Connector DTO") @@ -40,14 +41,15 @@ public class ConnectorEntity extends ComponentEntity implements Permissible<Conn this.component = component; } + @Schema(description = "The permissions for this component operations.") @Override public PermissionsDTO getOperatePermissions() { - return getPermissions(); + return operatePermissions; } @Override - public void setOperatePermissions(final PermissionsDTO permissions) { - setPermissions(permissions); + public void setOperatePermissions(final PermissionsDTO operatePermissions) { + this.operatePermissions = operatePermissions; } @Schema(description = "The status of the connector.") diff --git a/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java b/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java index 61a8f40711..de1e068bdc 100644 --- a/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java +++ b/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java @@ -3493,7 +3493,8 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { final ConnectorNode connector = connectorDAO.getConnector(snapshot.getComponent().getId()); final PermissionsDTO permissions = dtoFactory.createPermissionsDto(connector); - return entityFactory.createConnectorEntity(snapshot.getComponent(), dtoFactory.createRevisionDTO(snapshot.getLastModification()), permissions); + final PermissionsDTO operatePermissions = dtoFactory.createPermissionsDto(new OperationAuthorizable(connector)); + return entityFactory.createConnectorEntity(snapshot.getComponent(), dtoFactory.createRevisionDTO(snapshot.getLastModification()), permissions, operatePermissions); } @Override @@ -3502,7 +3503,8 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { final ConnectorDTO dto = dtoFactory.createConnectorDto(node); final RevisionDTO revision = dtoFactory.createRevisionDTO(revisionManager.getRevision(node.getIdentifier())); final PermissionsDTO permissions = dtoFactory.createPermissionsDto(node); - return entityFactory.createConnectorEntity(dto, revision, permissions); + final PermissionsDTO operatePermissions = dtoFactory.createPermissionsDto(new OperationAuthorizable(node)); + return entityFactory.createConnectorEntity(dto, revision, permissions, operatePermissions); }).collect(Collectors.toSet()); } @@ -3512,7 +3514,8 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { final ConnectorDTO dto = dtoFactory.createConnectorDto(node); final RevisionDTO revision = dtoFactory.createRevisionDTO(revisionManager.getRevision(node.getIdentifier())); final PermissionsDTO permissions = dtoFactory.createPermissionsDto(node); - return entityFactory.createConnectorEntity(dto, revision, permissions); + final PermissionsDTO operatePermissions = dtoFactory.createPermissionsDto(new OperationAuthorizable(node)); + return entityFactory.createConnectorEntity(dto, revision, permissions, operatePermissions); } @Override @@ -3538,7 +3541,8 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { final ConnectorNode node = connectorDAO.getConnector(snapshot.getComponent().getId()); final PermissionsDTO permissions = dtoFactory.createPermissionsDto(node); - return entityFactory.createConnectorEntity(snapshot.getComponent(), dtoFactory.createRevisionDTO(snapshot.getLastModification()), permissions); + final PermissionsDTO operatePermissions = dtoFactory.createPermissionsDto(new OperationAuthorizable(node)); + return entityFactory.createConnectorEntity(snapshot.getComponent(), dtoFactory.createRevisionDTO(snapshot.getLastModification()), permissions, operatePermissions); } @Override @@ -3564,7 +3568,11 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { final ConnectorDTO dto = snapshot.getComponent(); final PermissionsDTO permissions = new PermissionsDTO(); permissions.setCanRead(Boolean.FALSE); - return entityFactory.createConnectorEntity(dto, dtoFactory.createRevisionDTO(snapshot.getLastModification()), permissions); + permissions.setCanWrite(Boolean.FALSE); + final PermissionsDTO operatePermissions = new PermissionsDTO(); + operatePermissions.setCanRead(Boolean.FALSE); + operatePermissions.setCanWrite(Boolean.FALSE); + return entityFactory.createConnectorEntity(dto, dtoFactory.createRevisionDTO(snapshot.getLastModification()), permissions, operatePermissions); } @Override @@ -3589,7 +3597,8 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { final ConnectorNode node = connectorDAO.getConnector(snapshot.getComponent().getId()); final PermissionsDTO permissions = dtoFactory.createPermissionsDto(node); - return entityFactory.createConnectorEntity(snapshot.getComponent(), dtoFactory.createRevisionDTO(snapshot.getLastModification()), permissions); + final PermissionsDTO operatePermissions = dtoFactory.createPermissionsDto(new OperationAuthorizable(node)); + return entityFactory.createConnectorEntity(snapshot.getComponent(), dtoFactory.createRevisionDTO(snapshot.getLastModification()), permissions, operatePermissions); } @Override @@ -3647,7 +3656,8 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { final ConnectorNode node = connectorDAO.getConnector(snapshot.getComponent().getId()); final PermissionsDTO permissions = dtoFactory.createPermissionsDto(node); - return entityFactory.createConnectorEntity(snapshot.getComponent(), dtoFactory.createRevisionDTO(snapshot.getLastModification()), permissions); + final PermissionsDTO operatePermissions = dtoFactory.createPermissionsDto(new OperationAuthorizable(node)); + return entityFactory.createConnectorEntity(snapshot.getComponent(), dtoFactory.createRevisionDTO(snapshot.getLastModification()), permissions, operatePermissions); } @Override diff --git a/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/EntityFactory.java b/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/EntityFactory.java index ee21df4e48..5e6cacb696 100644 --- a/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/EntityFactory.java +++ b/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/EntityFactory.java @@ -130,11 +130,13 @@ public final class EntityFactory { public ConnectorEntity createConnectorEntity(final ConnectorDTO dto, final RevisionDTO revision, - final PermissionsDTO permissions) { + final PermissionsDTO permissions, + final PermissionsDTO operatePermissions) { final ConnectorEntity entity = new ConnectorEntity(); entity.setRevision(revision); if (dto != null) { entity.setPermissions(permissions); + entity.setOperatePermissions(operatePermissions); entity.setId(dto.getId()); if (permissions != null && permissions.getCanRead()) { entity.setComponent(dto);
