You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by dh...@apache.org on 2026/08/25 04:08:21 UTC

(ranger) branch RANGER-5760 created (now f3c28e37c)

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

dhavaljrajpara pushed a change to branch RANGER-5760
in repository https://gitbox.apache.org/repos/asf/ranger.git


      at f3c28e37c RANGER-5760 : [UI] Prevent duplicate service configuration entries on service edit page

This branch includes the following new commits:

     new f3c28e37c RANGER-5760 : [UI] Prevent duplicate service configuration entries on service edit page

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(ranger) 01/01: RANGER-5760 : [UI] Prevent duplicate service configuration entries on service edit page

Posted by dh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dhavaljrajpara pushed a commit to branch RANGER-5760
in repository https://gitbox.apache.org/repos/asf/ranger.git

commit f3c28e37c3eecf5421c076f64f41dae6d8932324
Author: Dhaval Rajpara <dh...@gmail.com>
AuthorDate: Tue Aug 25 09:33:28 2026 +0530

    RANGER-5760 : [UI] Prevent duplicate service configuration entries on service edit page
---
 .../src/views/ServiceManager/ServiceForm.jsx        | 21 ++++++++++++++++-----
 .../src/views/ServiceManager/ServiceViewDetails.jsx | 13 ++++++++++---
 2 files changed, 26 insertions(+), 8 deletions(-)

diff --git a/security-admin/src/main/webapp/react-webapp/src/views/ServiceManager/ServiceForm.jsx b/security-admin/src/main/webapp/react-webapp/src/views/ServiceManager/ServiceForm.jsx
index 6196cea37..4990c30c8 100644
--- a/security-admin/src/main/webapp/react-webapp/src/views/ServiceManager/ServiceForm.jsx
+++ b/security-admin/src/main/webapp/react-webapp/src/views/ServiceManager/ServiceForm.jsx
@@ -63,7 +63,8 @@ import {
   cloneDeep,
   intersection,
   join,
-  sortBy
+  sortBy,
+  includes
 } from "lodash";
 import withRouter from "Hooks/withRouter";
 import { RangerPolicyType } from "Utils/XAEnums";
@@ -402,7 +403,13 @@ class ServiceForm extends Component {
 
     serviceJson["configs"] = {};
 
-    let serviceDefConfigs = map(this.state?.serviceDef?.configs, "name");
+    const excludedServiceConfig = map(additionalServiceConfigs, "name");
+    let serviceDefConfigs = map(
+      reject(this.state?.serviceDef?.configs, (config) =>
+        includes(excludedServiceConfig, config.name)
+      ),
+      "name"
+    );
     let serviceCustomConfigs = without(
       difference(keys(serviceResp?.data?.configs), serviceDefConfigs),
       "ranger.plugin.audit.filters"
@@ -726,9 +733,13 @@ class ServiceForm extends Component {
   getServiceConfigs = (serviceDef) => {
     if (serviceDef?.configs !== undefined) {
       let formField = [];
-      const filterServiceConfigs = reject(serviceDef.configs, {
-        name: "ranger.plugin.audit.filters"
-      });
+      const configNamesToExclude = [
+        "ranger.plugin.audit.filters",
+        ...map(additionalServiceConfigs, "name")
+      ];
+      const filterServiceConfigs = reject(serviceDef.configs, (config) =>
+        includes(configNamesToExclude, config.name)
+      );
       filterServiceConfigs.map((configParam) => {
         this.configsJson[configParam.name] = configParam.name
           .replaceAll(".", "_")
diff --git a/security-admin/src/main/webapp/react-webapp/src/views/ServiceManager/ServiceViewDetails.jsx b/security-admin/src/main/webapp/react-webapp/src/views/ServiceManager/ServiceViewDetails.jsx
index 9f3afbe91..49fdbeb0a 100644
--- a/security-admin/src/main/webapp/react-webapp/src/views/ServiceManager/ServiceViewDetails.jsx
+++ b/security-admin/src/main/webapp/react-webapp/src/views/ServiceManager/ServiceViewDetails.jsx
@@ -29,7 +29,9 @@ import {
   pick,
   intersection,
   find,
-  sortBy
+  sortBy,
+  reject,
+  includes
 } from "lodash";
 import { ModalLoader } from "Components/CommonComponents";
 import { additionalServiceConfigs } from "Utils/XAEnums";
@@ -78,8 +80,13 @@ export const ServiceViewDetails = (props) => {
     let configs = {};
     let customConfigs = {};
 
-    let serviceDefConfigs = serviceDef?.configs?.filter(
-      (config) => config.name !== "ranger.plugin.audit.filters"
+    const excludedServiceConfig = [
+      "ranger.plugin.audit.filters",
+      ...map(additionalServiceConfigs, "name")
+    ];
+
+    let serviceDefConfigs = reject(serviceDef?.configs, (config) =>
+      includes(excludedServiceConfig, config.name)
     );
 
     serviceConfigs = omit(serviceConfigs, "ranger.plugin.audit.filters");