You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by sc...@apache.org on 2019/09/06 13:32:51 UTC

[nifi] 01/02: NIFI-6623 - Support linking to unauthorized components from referencing components

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

scottyaslan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nifi.git

commit 710c02c673570d09a7e61ea6f95015b6c36382cd
Author: Rob Fellows <ro...@gmail.com>
AuthorDate: Thu Sep 5 14:10:24 2019 -0400

    NIFI-6623 - Support linking to unauthorized components from referencing components
---
 .../web/api/entity/AffectedComponentEntity.java    | 13 ++++++++++
 .../org/apache/nifi/web/api/dto/EntityFactory.java |  1 +
 .../webapp/js/nf/canvas/nf-parameter-contexts.js   | 30 ++++++++++++++--------
 .../webapp/js/nf/canvas/nf-variable-registry.js    | 21 ++++++++++++++-
 4 files changed, 54 insertions(+), 11 deletions(-)

diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/AffectedComponentEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/AffectedComponentEntity.java
index 737d9c0..7ef93a7 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/AffectedComponentEntity.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/AffectedComponentEntity.java
@@ -31,6 +31,7 @@ public class AffectedComponentEntity extends ComponentEntity implements Permissi
 
     private AffectedComponentDTO component;
     private ProcessGroupNameDTO processGroup;
+    private String referenceType;
 
     /**
      * @return variable referencing components that is being serialized
@@ -54,6 +55,18 @@ public class AffectedComponentEntity extends ComponentEntity implements Permissi
         this.processGroup = processGroup;
     }
 
+    @ApiModelProperty(value="The type of component referenced",
+        allowableValues = AffectedComponentDTO.COMPONENT_TYPE_PROCESSOR + "," + AffectedComponentDTO.COMPONENT_TYPE_CONTROLLER_SERVICE + ", "
+                + AffectedComponentDTO.COMPONENT_TYPE_INPUT_PORT + ", " + AffectedComponentDTO.COMPONENT_TYPE_OUTPUT_PORT + ", "
+                + AffectedComponentDTO.COMPONENT_TYPE_REMOTE_INPUT_PORT + ", " + AffectedComponentDTO.COMPONENT_TYPE_REMOTE_OUTPUT_PORT)
+    public String getReferenceType() {
+        return referenceType;
+    }
+
+    public void setReferenceType(String referenceType) {
+        this.referenceType = referenceType;
+    }
+
     @Override
     public String toString() {
         return component == null ? "AffectedComponent[No Component]" : component.toString();
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/EntityFactory.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/EntityFactory.java
index 20de5e5..08c28d1 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/EntityFactory.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/EntityFactory.java
@@ -370,6 +370,7 @@ public final class EntityFactory {
         if (dto != null) {
             entity.setPermissions(permissions);
             entity.setId(dto.getId());
+            entity.setReferenceType(dto.getReferenceType());
 
             if (permissions != null && permissions.getCanRead()) {
                 entity.setComponent(dto);
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-parameter-contexts.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-parameter-contexts.js
index 161bb64..79c3bef 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-parameter-contexts.js
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-parameter-contexts.js
@@ -692,16 +692,26 @@
                                         }
                                     } else {
                                         var referencingUnauthorizedComponentContainer = $('<li class="referencing-component-container"></li>').appendTo(unauthorizedComponentsContainer);
-                                        $('<span class="parameter-context-referencing-component-name link ellipsis"></span>').prop('title', unauthorizedReferencingComponentEntity.id).text(unauthorizedReferencingComponentEntity.id).on('click', function () {
-                                            // check if there are outstanding changes
-                                            handleOutstandingChanges().done(function () {
-                                                // close the shell
-                                                $('#shell-dialog').modal('hide');
-
-                                                // show the component in question
-                                                nfCanvasUtils.showComponent(unauthorizedReferencingComponentEntity.processGroup.id, unauthorizedReferencingComponentEntity.id);
-                                            });
-                                        }).appendTo(referencingUnauthorizedComponentContainer);
+                                        $('<span class="parameter-context-referencing-component-name link ellipsis"></span>')
+                                            .prop('title', unauthorizedReferencingComponentEntity.id)
+                                            .text(unauthorizedReferencingComponentEntity.id)
+                                            .on('click', function () {
+                                                // check if there are outstanding changes
+                                                handleOutstandingChanges().done(function () {
+                                                    // close the shell
+                                                    $('#shell-dialog').modal('hide');
+
+                                                    // show the component in question
+                                                    if (unauthorizedReferencingComponentEntity.referenceType === 'PROCESSOR') {
+                                                        nfCanvasUtils.showComponent(unauthorizedReferencingComponentEntity.processGroup.id, unauthorizedReferencingComponentEntity.id);
+                                                    } else if (unauthorizedReferencingComponentEntity.referenceType === 'CONTROLLER_SERVICE') {
+                                                        nfProcessGroupConfiguration.showConfiguration(unauthorizedReferencingComponentEntity.processGroup.id).done(function () {
+                                                            nfProcessGroupConfiguration.selectControllerService(unauthorizedReferencingComponentEntity.id);
+                                                        });
+                                                    }
+                                                });
+                                            })
+                                            .appendTo(referencingUnauthorizedComponentContainer);
                                     }
                                 });
                             }
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-variable-registry.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-variable-registry.js
index cfd18f5..f84537e 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-variable-registry.js
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-variable-registry.js
@@ -912,7 +912,26 @@
                         }
                     } else {
                         var affectedUnauthorizedComponentContainer = $('<li class="affected-component-container"></li>').appendTo(unauthorizedComponentsContainer);
-                        $('<span class="unset"></span>').text(unauthorizedAffectedComponentEntity.id).appendTo(affectedUnauthorizedComponentContainer);
+                        $('<span class="referencing-component-name link ellipsis"></span>')
+                            .prop('title', unauthorizedAffectedComponentEntity.id)
+                            .text(unauthorizedAffectedComponentEntity.id)
+                            .on('click', function () {
+                                // check if there are outstanding changes
+                                handleOutstandingChanges().done(function () {
+                                    // close the shell
+                                    $('#shell-dialog').modal('hide');
+
+                                    // show the component in question
+                                    if (unauthorizedAffectedComponentEntity.referenceType === 'PROCESSOR') {
+                                        nfCanvasUtils.showComponent(unauthorizedAffectedComponentEntity.processGroup.id, unauthorizedAffectedComponentEntity.id);
+                                    } else if (unauthorizedAffectedComponentEntity.referenceType === 'CONTROLLER_SERVICE') {
+                                        nfProcessGroupConfiguration.showConfiguration(unauthorizedAffectedComponentEntity.processGroup.id).done(function () {
+                                            nfProcessGroupConfiguration.selectControllerService(unauthorizedAffectedComponentEntity.id);
+                                        });
+                                    }
+                                });
+                            })
+                            .appendTo(affectedUnauthorizedComponentContainer);
                     }
                 });
             }