This is an automated email from the ASF dual-hosted git repository.

markap14 pushed a commit to branch NIFI-15258
in repository https://gitbox.apache.org/repos/asf/nifi.git

commit 798594c8ef96de959271fd95ddaef49a6114ad45
Author: Matt Gilman <[email protected]>
AuthorDate: Wed Dec 10 14:55:50 2025 -0500

    NIFI-15323: Adding operate permissions to the ConnectorEntity. (#10625)
    
    This closes #10625
---
 .../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 1fa7e93076..5cc7dd046f 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
@@ -3494,7 +3494,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
@@ -3503,7 +3504,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());
     }
 
@@ -3513,7 +3515,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
@@ -3539,7 +3542,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
@@ -3565,7 +3569,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
@@ -3590,7 +3598,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
@@ -3648,7 +3657,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 ab4f27e2f8..9ebe1fced4 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);

Reply via email to