From c90a45983781e1b90faa3c5665b628dc57c4d910 Mon Sep 17 00:00:00 2001 From: Marliana Lara Date: Fri, 11 Dec 2020 15:48:51 -0500 Subject: [PATCH] Fix bug where revert all reverted all ldap categories --- .../Setting/LDAP/LDAPEdit/LDAPEdit.jsx | 31 +++- .../Setting/LDAP/LDAPEdit/LDAPEdit.test.jsx | 27 +++- .../shared/data.ldapDefaultSettings.json | 134 ------------------ 3 files changed, 54 insertions(+), 138 deletions(-) delete mode 100644 awx/ui_next/src/screens/Setting/shared/data.ldapDefaultSettings.json diff --git a/awx/ui_next/src/screens/Setting/LDAP/LDAPEdit/LDAPEdit.jsx b/awx/ui_next/src/screens/Setting/LDAP/LDAPEdit/LDAPEdit.jsx index 4e6dbe4e6e..f983907ec9 100644 --- a/awx/ui_next/src/screens/Setting/LDAP/LDAPEdit/LDAPEdit.jsx +++ b/awx/ui_next/src/screens/Setting/LDAP/LDAPEdit/LDAPEdit.jsx @@ -21,6 +21,15 @@ import useModal from '../../../../util/useModal'; import useRequest from '../../../../util/useRequest'; import { SettingsAPI } from '../../../../api'; +function filterByPrefix(data, prefix) { + return Object.keys(data) + .filter(key => key.includes(prefix)) + .reduce((obj, key) => { + obj[key] = data[key]; + return obj; + }, {}); +} + function LDAPEdit() { const history = useHistory(); const { isModalOpen, toggleModal, closeModal } = useModal(); @@ -44,8 +53,26 @@ function LDAPEdit() { mergedData[key].value = data[key]; }); - return mergedData; - }, [options]), + const allCategories = { + AUTH_LDAP_1_: filterByPrefix(mergedData, 'AUTH_LDAP_1_'), + AUTH_LDAP_2_: filterByPrefix(mergedData, 'AUTH_LDAP_2_'), + AUTH_LDAP_3_: filterByPrefix(mergedData, 'AUTH_LDAP_3_'), + AUTH_LDAP_4_: filterByPrefix(mergedData, 'AUTH_LDAP_4_'), + AUTH_LDAP_5_: filterByPrefix(mergedData, 'AUTH_LDAP_5_'), + AUTH_LDAP_: Object.assign({}, mergedData), + }; + Object.keys({ + ...allCategories.AUTH_LDAP_1_, + ...allCategories.AUTH_LDAP_2_, + ...allCategories.AUTH_LDAP_3_, + ...allCategories.AUTH_LDAP_4_, + ...allCategories.AUTH_LDAP_5_, + }).forEach(keyToOmit => { + delete allCategories.AUTH_LDAP_[keyToOmit]; + }); + + return allCategories[ldapCategory]; + }, [options, ldapCategory]), null ); diff --git a/awx/ui_next/src/screens/Setting/LDAP/LDAPEdit/LDAPEdit.test.jsx b/awx/ui_next/src/screens/Setting/LDAP/LDAPEdit/LDAPEdit.test.jsx index c74fa67064..71f998e341 100644 --- a/awx/ui_next/src/screens/Setting/LDAP/LDAPEdit/LDAPEdit.test.jsx +++ b/awx/ui_next/src/screens/Setting/LDAP/LDAPEdit/LDAPEdit.test.jsx @@ -8,7 +8,6 @@ import { } from '../../../../../testUtils/enzymeHelpers'; import mockAllOptions from '../../shared/data.allSettingOptions.json'; import mockLDAP from '../../shared/data.ldapSettings.json'; -import mockLDAPDefault from '../../shared/data.ldapDefaultSettings.json'; import { SettingsProvider } from '../../../../contexts/Settings'; import { SettingsAPI } from '../../../../api'; import LDAPEdit from './LDAPEdit'; @@ -110,7 +109,30 @@ describe('', () => { }); wrapper.update(); expect(SettingsAPI.updateAll).toHaveBeenCalledTimes(1); - expect(SettingsAPI.updateAll).toHaveBeenCalledWith(mockLDAPDefault); + expect(SettingsAPI.updateAll).toHaveBeenCalledWith({ + AUTH_LDAP_BIND_DN: '', + AUTH_LDAP_BIND_PASSWORD: '', + AUTH_LDAP_CONNECTION_OPTIONS: { + OPT_NETWORK_TIMEOUT: 30, + OPT_REFERRALS: 0, + }, + AUTH_LDAP_DENY_GROUP: null, + AUTH_LDAP_GROUP_SEARCH: [], + AUTH_LDAP_GROUP_TYPE: 'MemberDNGroupType', + AUTH_LDAP_GROUP_TYPE_PARAMS: { + member_attr: 'member', + name_attr: 'cn', + }, + AUTH_LDAP_ORGANIZATION_MAP: {}, + AUTH_LDAP_REQUIRE_GROUP: null, + AUTH_LDAP_SERVER_URI: '', + AUTH_LDAP_START_TLS: false, + AUTH_LDAP_TEAM_MAP: {}, + AUTH_LDAP_USER_ATTR_MAP: {}, + AUTH_LDAP_USER_DN_TEMPLATE: null, + AUTH_LDAP_USER_FLAGS_BY_GROUP: {}, + AUTH_LDAP_USER_SEARCH: [], + }); }); test('should successfully send request to api on form submission', async () => { @@ -162,6 +184,7 @@ describe('', () => { }, }); }); + test('should navigate to ldap default detail on successful submission', async () => { await act(async () => { wrapper.find('Form').invoke('onSubmit')(); diff --git a/awx/ui_next/src/screens/Setting/shared/data.ldapDefaultSettings.json b/awx/ui_next/src/screens/Setting/shared/data.ldapDefaultSettings.json deleted file mode 100644 index 29c09e52c4..0000000000 --- a/awx/ui_next/src/screens/Setting/shared/data.ldapDefaultSettings.json +++ /dev/null @@ -1,134 +0,0 @@ -{ - "AUTH_LDAP_1_BIND_DN": "", - "AUTH_LDAP_1_BIND_PASSWORD": "", - "AUTH_LDAP_1_CONNECTION_OPTIONS": { - "OPT_NETWORK_TIMEOUT": 30, - "OPT_REFERRALS": 0 - }, - "AUTH_LDAP_1_DENY_GROUP": null, - "AUTH_LDAP_1_GROUP_SEARCH": [], - "AUTH_LDAP_1_GROUP_TYPE": "MemberDNGroupType", - "AUTH_LDAP_1_GROUP_TYPE_PARAMS": { - "member_attr": "member", - "name_attr": "cn" - }, - "AUTH_LDAP_1_ORGANIZATION_MAP": {}, - "AUTH_LDAP_1_REQUIRE_GROUP": null, - "AUTH_LDAP_1_SERVER_URI": "", - "AUTH_LDAP_1_START_TLS": false, - "AUTH_LDAP_1_TEAM_MAP": {}, - "AUTH_LDAP_1_USER_ATTR_MAP": {}, - "AUTH_LDAP_1_USER_DN_TEMPLATE": null, - "AUTH_LDAP_1_USER_FLAGS_BY_GROUP": {}, - "AUTH_LDAP_1_USER_SEARCH": [], - "AUTH_LDAP_2_BIND_DN": "", - "AUTH_LDAP_2_BIND_PASSWORD": "", - "AUTH_LDAP_2_CONNECTION_OPTIONS": { - "OPT_NETWORK_TIMEOUT": 30, - "OPT_REFERRALS": 0 - }, - "AUTH_LDAP_2_DENY_GROUP": null, - "AUTH_LDAP_2_GROUP_SEARCH": [], - "AUTH_LDAP_2_GROUP_TYPE": "MemberDNGroupType", - "AUTH_LDAP_2_GROUP_TYPE_PARAMS": { - "member_attr": "member", - "name_attr": "cn" - }, - "AUTH_LDAP_2_ORGANIZATION_MAP": {}, - "AUTH_LDAP_2_REQUIRE_GROUP": null, - "AUTH_LDAP_2_SERVER_URI": "", - "AUTH_LDAP_2_START_TLS": false, - "AUTH_LDAP_2_TEAM_MAP": {}, - "AUTH_LDAP_2_USER_ATTR_MAP": {}, - "AUTH_LDAP_2_USER_DN_TEMPLATE": null, - "AUTH_LDAP_2_USER_FLAGS_BY_GROUP": {}, - "AUTH_LDAP_2_USER_SEARCH": [], - "AUTH_LDAP_3_BIND_DN": "", - "AUTH_LDAP_3_BIND_PASSWORD": "", - "AUTH_LDAP_3_CONNECTION_OPTIONS": { - "OPT_NETWORK_TIMEOUT": 30, - "OPT_REFERRALS": 0 - }, - "AUTH_LDAP_3_DENY_GROUP": null, - "AUTH_LDAP_3_GROUP_SEARCH": [], - "AUTH_LDAP_3_GROUP_TYPE": "MemberDNGroupType", - "AUTH_LDAP_3_GROUP_TYPE_PARAMS": { - "member_attr": "member", - "name_attr": "cn" - }, - "AUTH_LDAP_3_ORGANIZATION_MAP": {}, - "AUTH_LDAP_3_REQUIRE_GROUP": null, - "AUTH_LDAP_3_SERVER_URI": "", - "AUTH_LDAP_3_START_TLS": false, - "AUTH_LDAP_3_TEAM_MAP": {}, - "AUTH_LDAP_3_USER_ATTR_MAP": {}, - "AUTH_LDAP_3_USER_DN_TEMPLATE": null, - "AUTH_LDAP_3_USER_FLAGS_BY_GROUP": {}, - "AUTH_LDAP_3_USER_SEARCH": [], - "AUTH_LDAP_4_BIND_DN": "", - "AUTH_LDAP_4_BIND_PASSWORD": "", - "AUTH_LDAP_4_CONNECTION_OPTIONS": { - "OPT_NETWORK_TIMEOUT": 30, - "OPT_REFERRALS": 0 - }, - "AUTH_LDAP_4_DENY_GROUP": null, - "AUTH_LDAP_4_GROUP_SEARCH": [], - "AUTH_LDAP_4_GROUP_TYPE": "MemberDNGroupType", - "AUTH_LDAP_4_GROUP_TYPE_PARAMS": { - "member_attr": "member", - "name_attr": "cn" - }, - "AUTH_LDAP_4_ORGANIZATION_MAP": {}, - "AUTH_LDAP_4_REQUIRE_GROUP": null, - "AUTH_LDAP_4_SERVER_URI": "", - "AUTH_LDAP_4_START_TLS": false, - "AUTH_LDAP_4_TEAM_MAP": {}, - "AUTH_LDAP_4_USER_ATTR_MAP": {}, - "AUTH_LDAP_4_USER_DN_TEMPLATE": null, - "AUTH_LDAP_4_USER_FLAGS_BY_GROUP": {}, - "AUTH_LDAP_4_USER_SEARCH": [], - "AUTH_LDAP_5_BIND_DN": "", - "AUTH_LDAP_5_BIND_PASSWORD": "", - "AUTH_LDAP_5_CONNECTION_OPTIONS": { - "OPT_NETWORK_TIMEOUT": 30, - "OPT_REFERRALS": 0 - }, - "AUTH_LDAP_5_DENY_GROUP": null, - "AUTH_LDAP_5_GROUP_SEARCH": [], - "AUTH_LDAP_5_GROUP_TYPE": "MemberDNGroupType", - "AUTH_LDAP_5_GROUP_TYPE_PARAMS": { - "member_attr": "member", - "name_attr": "cn" - }, - "AUTH_LDAP_5_ORGANIZATION_MAP": {}, - "AUTH_LDAP_5_REQUIRE_GROUP": null, - "AUTH_LDAP_5_SERVER_URI": "", - "AUTH_LDAP_5_START_TLS": false, - "AUTH_LDAP_5_TEAM_MAP": {}, - "AUTH_LDAP_5_USER_ATTR_MAP": {}, - "AUTH_LDAP_5_USER_DN_TEMPLATE": null, - "AUTH_LDAP_5_USER_FLAGS_BY_GROUP": {}, - "AUTH_LDAP_5_USER_SEARCH": [], - "AUTH_LDAP_BIND_DN": "", - "AUTH_LDAP_BIND_PASSWORD": "", - "AUTH_LDAP_CONNECTION_OPTIONS": { - "OPT_NETWORK_TIMEOUT": 30, - "OPT_REFERRALS": 0 - }, - "AUTH_LDAP_DENY_GROUP": null, - "AUTH_LDAP_GROUP_SEARCH": [], - "AUTH_LDAP_GROUP_TYPE": "MemberDNGroupType", - "AUTH_LDAP_GROUP_TYPE_PARAMS": { - "member_attr": "member", - "name_attr": "cn" - }, - "AUTH_LDAP_ORGANIZATION_MAP": {}, - "AUTH_LDAP_REQUIRE_GROUP": null, - "AUTH_LDAP_SERVER_URI": "", - "AUTH_LDAP_START_TLS": false, - "AUTH_LDAP_TEAM_MAP": {}, - "AUTH_LDAP_USER_ATTR_MAP": {}, - "AUTH_LDAP_USER_DN_TEMPLATE": null, - "AUTH_LDAP_USER_FLAGS_BY_GROUP": {}, - "AUTH_LDAP_USER_SEARCH": [] -} \ No newline at end of file