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