-
-
-
diff --git a/awx/ui/client/src/configuration/auth-form/sub-forms/auth-ldap1.form.js b/awx/ui/client/src/configuration/auth-form/sub-forms/auth-ldap1.form.js
new file mode 100644
index 0000000000..8430fecee3
--- /dev/null
+++ b/awx/ui/client/src/configuration/auth-form/sub-forms/auth-ldap1.form.js
@@ -0,0 +1,108 @@
+/*************************************************
+ * Copyright (c) 2016 Ansible, Inc.
+ *
+ * All Rights Reserved
+ *************************************************/
+
+export default ['i18n', function(i18n) {
+ return {
+ // editTitle: 'Authorization Configuration',
+ name: 'configuration_ldap1_template',
+ showActions: true,
+ showHeader: false,
+
+ fields: {
+ AUTH_LDAP_1_SERVER_URI: {
+ type: 'text',
+ reset: 'AUTH_LDAP_1_SERVER_URI'
+ },
+ AUTH_LDAP_1_BIND_DN: {
+ type: 'text',
+ reset: 'AUTH_LDAP_1_BIND_DN'
+ },
+ AUTH_LDAP_1_BIND_PASSWORD: {
+ type: 'sensitive',
+ hasShowInputButton: true,
+ },
+ AUTH_LDAP_1_USER_SEARCH: {
+ type: 'textarea',
+ rows: 6,
+ codeMirror: true,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ reset: 'AUTH_LDAP_1_USER_SEARCH'
+ },
+ AUTH_LDAP_1_GROUP_SEARCH: {
+ type: 'textarea',
+ rows: 6,
+ codeMirror: true,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ reset: 'AUTH_LDAP_1_GROUP_SEARCH'
+ },
+ AUTH_LDAP_1_USER_DN_TEMPLATE: {
+ type: 'text',
+ reset: 'AUTH_LDAP_1_USER_DN_TEMPLATE'
+ },
+ AUTH_LDAP_1_USER_ATTR_MAP: {
+ type: 'textarea',
+ reset: 'AUTH_LDAP_1_USER_ATTR_MAP',
+ rows: 6,
+ codeMirror: true,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ },
+ AUTH_LDAP_1_GROUP_TYPE: {
+ type: 'select',
+ reset: 'AUTH_LDAP_1_GROUP_TYPE',
+ ngOptions: 'group.label for group in AUTH_LDAP_1_GROUP_TYPE_options track by group.value',
+ },
+ AUTH_LDAP_1_REQUIRE_GROUP: {
+ type: 'text',
+ reset: 'AUTH_LDAP_1_REQUIRE_GROUP'
+ },
+ AUTH_LDAP_1_DENY_GROUP: {
+ type: 'text',
+ reset: 'AUTH_LDAP_1_DENY_GROUP'
+ },
+ AUTH_LDAP_1_START_TLS: {
+ type: 'toggleSwitch'
+ },
+ AUTH_LDAP_1_USER_FLAGS_BY_GROUP: {
+ type: 'textarea',
+ reset: 'AUTH_LDAP_1_USER_FLAGS_BY_GROUP',
+ codeMirror: true,
+ rows: 6,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ },
+ AUTH_LDAP_1_ORGANIZATION_MAP: {
+ type: 'textarea',
+ reset: 'AUTH_LDAP_1_ORGANIZATION_MAP',
+ codeMirror: true,
+ rows: 6,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ },
+ AUTH_LDAP_1_TEAM_MAP: {
+ type: 'textarea',
+ reset: 'AUTH_LDAP_1_TEAM_MAP',
+ codeMirror: true,
+ rows: 6,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ }
+ },
+
+ buttons: {
+ reset: {
+ ngShow: '!user_is_system_auditor',
+ ngClick: 'vm.resetAllConfirm()',
+ label: i18n._('Revert all to default'),
+ class: 'Form-resetAll'
+ },
+ cancel: {
+ ngClick: 'vm.formCancel()',
+ },
+ save: {
+ ngClick: 'vm.formSave()',
+ ngDisabled: "!ldap_auth || configuration_ldap1_template_form.$invalid || configuration_ldap1_template_form.$pending"
+ }
+ }
+ };
+}
+];
diff --git a/awx/ui/client/src/configuration/auth-form/sub-forms/auth-ldap2.form.js b/awx/ui/client/src/configuration/auth-form/sub-forms/auth-ldap2.form.js
new file mode 100644
index 0000000000..09230cb802
--- /dev/null
+++ b/awx/ui/client/src/configuration/auth-form/sub-forms/auth-ldap2.form.js
@@ -0,0 +1,108 @@
+/*************************************************
+ * Copyright (c) 2018 Ansible, Inc.
+ *
+ * All Rights Reserved
+ *************************************************/
+
+export default ['i18n', function(i18n) {
+ return {
+ // editTitle: 'Authorization Configuration',
+ name: 'configuration_ldap2_template',
+ showActions: true,
+ showHeader: false,
+
+ fields: {
+ AUTH_LDAP_2_SERVER_URI: {
+ type: 'text',
+ reset: 'AUTH_LDAP_2_SERVER_URI'
+ },
+ AUTH_LDAP_2_BIND_DN: {
+ type: 'text',
+ reset: 'AUTH_LDAP_2_BIND_DN'
+ },
+ AUTH_LDAP_2_BIND_PASSWORD: {
+ type: 'sensitive',
+ hasShowInputButton: true,
+ },
+ AUTH_LDAP_2_USER_SEARCH: {
+ type: 'textarea',
+ rows: 6,
+ codeMirror: true,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ reset: 'AUTH_LDAP_2_USER_SEARCH'
+ },
+ AUTH_LDAP_2_GROUP_SEARCH: {
+ type: 'textarea',
+ rows: 6,
+ codeMirror: true,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ reset: 'AUTH_LDAP_2_GROUP_SEARCH'
+ },
+ AUTH_LDAP_2_USER_DN_TEMPLATE: {
+ type: 'text',
+ reset: 'AUTH_LDAP_2_USER_DN_TEMPLATE'
+ },
+ AUTH_LDAP_2_USER_ATTR_MAP: {
+ type: 'textarea',
+ reset: 'AUTH_LDAP_2_USER_ATTR_MAP',
+ rows: 6,
+ codeMirror: true,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ },
+ AUTH_LDAP_2_GROUP_TYPE: {
+ type: 'select',
+ reset: 'AUTH_LDAP_2_GROUP_TYPE',
+ ngOptions: 'group.label for group in AUTH_LDAP_2_GROUP_TYPE_options track by group.value',
+ },
+ AUTH_LDAP_2_REQUIRE_GROUP: {
+ type: 'text',
+ reset: 'AUTH_LDAP_2_REQUIRE_GROUP'
+ },
+ AUTH_LDAP_2_DENY_GROUP: {
+ type: 'text',
+ reset: 'AUTH_LDAP_2_DENY_GROUP'
+ },
+ AUTH_LDAP_2_START_TLS: {
+ type: 'toggleSwitch'
+ },
+ AUTH_LDAP_2_USER_FLAGS_BY_GROUP: {
+ type: 'textarea',
+ reset: 'AUTH_LDAP_2_USER_FLAGS_BY_GROUP',
+ codeMirror: true,
+ rows: 6,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ },
+ AUTH_LDAP_2_ORGANIZATION_MAP: {
+ type: 'textarea',
+ reset: 'AUTH_LDAP_2_ORGANIZATION_MAP',
+ codeMirror: true,
+ rows: 6,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ },
+ AUTH_LDAP_2_TEAM_MAP: {
+ type: 'textarea',
+ reset: 'AUTH_LDAP_2_TEAM_MAP',
+ codeMirror: true,
+ rows: 6,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ }
+ },
+
+ buttons: {
+ reset: {
+ ngShow: '!user_is_system_auditor',
+ ngClick: 'vm.resetAllConfirm()',
+ label: i18n._('Revert all to default'),
+ class: 'Form-resetAll'
+ },
+ cancel: {
+ ngClick: 'vm.formCancel()',
+ },
+ save: {
+ ngClick: 'vm.formSave()',
+ ngDisabled: "!ldap_auth || configuration_ldap2_template_form.$invalid || configuration_ldap2_template_form.$pending"
+ }
+ }
+ };
+}
+];
diff --git a/awx/ui/client/src/configuration/auth-form/sub-forms/auth-ldap3.form.js b/awx/ui/client/src/configuration/auth-form/sub-forms/auth-ldap3.form.js
new file mode 100644
index 0000000000..9c26c22829
--- /dev/null
+++ b/awx/ui/client/src/configuration/auth-form/sub-forms/auth-ldap3.form.js
@@ -0,0 +1,108 @@
+/*************************************************
+ * Copyright (c) 2018 Ansible, Inc.
+ *
+ * All Rights Reserved
+ *************************************************/
+
+export default ['i18n', function(i18n) {
+ return {
+ // editTitle: 'Authorization Configuration',
+ name: 'configuration_ldap3_template',
+ showActions: true,
+ showHeader: false,
+
+ fields: {
+ AUTH_LDAP_3_SERVER_URI: {
+ type: 'text',
+ reset: 'AUTH_LDAP_3_SERVER_URI'
+ },
+ AUTH_LDAP_3_BIND_DN: {
+ type: 'text',
+ reset: 'AUTH_LDAP_3_BIND_DN'
+ },
+ AUTH_LDAP_3_BIND_PASSWORD: {
+ type: 'sensitive',
+ hasShowInputButton: true,
+ },
+ AUTH_LDAP_3_USER_SEARCH: {
+ type: 'textarea',
+ rows: 6,
+ codeMirror: true,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ reset: 'AUTH_LDAP_3_USER_SEARCH'
+ },
+ AUTH_LDAP_3_GROUP_SEARCH: {
+ type: 'textarea',
+ rows: 6,
+ codeMirror: true,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ reset: 'AUTH_LDAP_3_GROUP_SEARCH'
+ },
+ AUTH_LDAP_3_USER_DN_TEMPLATE: {
+ type: 'text',
+ reset: 'AUTH_LDAP_3_USER_DN_TEMPLATE'
+ },
+ AUTH_LDAP_3_USER_ATTR_MAP: {
+ type: 'textarea',
+ reset: 'AUTH_LDAP_3_USER_ATTR_MAP',
+ rows: 6,
+ codeMirror: true,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ },
+ AUTH_LDAP_3_GROUP_TYPE: {
+ type: 'select',
+ reset: 'AUTH_LDAP_3_GROUP_TYPE',
+ ngOptions: 'group.label for group in AUTH_LDAP_3_GROUP_TYPE_options track by group.value',
+ },
+ AUTH_LDAP_3_REQUIRE_GROUP: {
+ type: 'text',
+ reset: 'AUTH_LDAP_3_REQUIRE_GROUP'
+ },
+ AUTH_LDAP_3_DENY_GROUP: {
+ type: 'text',
+ reset: 'AUTH_LDAP_3_DENY_GROUP'
+ },
+ AUTH_LDAP_3_START_TLS: {
+ type: 'toggleSwitch'
+ },
+ AUTH_LDAP_3_USER_FLAGS_BY_GROUP: {
+ type: 'textarea',
+ reset: 'AUTH_LDAP_3_USER_FLAGS_BY_GROUP',
+ codeMirror: true,
+ rows: 6,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ },
+ AUTH_LDAP_3_ORGANIZATION_MAP: {
+ type: 'textarea',
+ reset: 'AUTH_LDAP_3_ORGANIZATION_MAP',
+ codeMirror: true,
+ rows: 6,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ },
+ AUTH_LDAP_3_TEAM_MAP: {
+ type: 'textarea',
+ reset: 'AUTH_LDAP_3_TEAM_MAP',
+ codeMirror: true,
+ rows: 6,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ }
+ },
+
+ buttons: {
+ reset: {
+ ngShow: '!user_is_system_auditor',
+ ngClick: 'vm.resetAllConfirm()',
+ label: i18n._('Revert all to default'),
+ class: 'Form-resetAll'
+ },
+ cancel: {
+ ngClick: 'vm.formCancel()',
+ },
+ save: {
+ ngClick: 'vm.formSave()',
+ ngDisabled: "!ldap_auth || configuration_ldap3_template_form.$invalid || configuration_ldap3_template_form.$pending"
+ }
+ }
+ };
+}
+];
diff --git a/awx/ui/client/src/configuration/auth-form/sub-forms/auth-ldap4.form.js b/awx/ui/client/src/configuration/auth-form/sub-forms/auth-ldap4.form.js
new file mode 100644
index 0000000000..95c9f6d175
--- /dev/null
+++ b/awx/ui/client/src/configuration/auth-form/sub-forms/auth-ldap4.form.js
@@ -0,0 +1,108 @@
+/*************************************************
+ * Copyright (c) 2018 Ansible, Inc.
+ *
+ * All Rights Reserved
+ *************************************************/
+
+export default ['i18n', function(i18n) {
+ return {
+ // editTitle: 'Authorization Configuration',
+ name: 'configuration_ldap4_template',
+ showActions: true,
+ showHeader: false,
+
+ fields: {
+ AUTH_LDAP_4_SERVER_URI: {
+ type: 'text',
+ reset: 'AUTH_LDAP_4_SERVER_URI'
+ },
+ AUTH_LDAP_4_BIND_DN: {
+ type: 'text',
+ reset: 'AUTH_LDAP_4_BIND_DN'
+ },
+ AUTH_LDAP_4_BIND_PASSWORD: {
+ type: 'sensitive',
+ hasShowInputButton: true,
+ },
+ AUTH_LDAP_4_USER_SEARCH: {
+ type: 'textarea',
+ rows: 6,
+ codeMirror: true,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ reset: 'AUTH_LDAP_4_USER_SEARCH'
+ },
+ AUTH_LDAP_4_GROUP_SEARCH: {
+ type: 'textarea',
+ rows: 6,
+ codeMirror: true,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ reset: 'AUTH_LDAP_4_GROUP_SEARCH'
+ },
+ AUTH_LDAP_4_USER_DN_TEMPLATE: {
+ type: 'text',
+ reset: 'AUTH_LDAP_4_USER_DN_TEMPLATE'
+ },
+ AUTH_LDAP_4_USER_ATTR_MAP: {
+ type: 'textarea',
+ reset: 'AUTH_LDAP_4_USER_ATTR_MAP',
+ rows: 6,
+ codeMirror: true,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ },
+ AUTH_LDAP_4_GROUP_TYPE: {
+ type: 'select',
+ reset: 'AUTH_LDAP_4_GROUP_TYPE',
+ ngOptions: 'group.label for group in AUTH_LDAP_4_GROUP_TYPE_options track by group.value',
+ },
+ AUTH_LDAP_4_REQUIRE_GROUP: {
+ type: 'text',
+ reset: 'AUTH_LDAP_4_REQUIRE_GROUP'
+ },
+ AUTH_LDAP_4_DENY_GROUP: {
+ type: 'text',
+ reset: 'AUTH_LDAP_4_DENY_GROUP'
+ },
+ AUTH_LDAP_4_START_TLS: {
+ type: 'toggleSwitch'
+ },
+ AUTH_LDAP_4_USER_FLAGS_BY_GROUP: {
+ type: 'textarea',
+ reset: 'AUTH_LDAP_4_USER_FLAGS_BY_GROUP',
+ codeMirror: true,
+ rows: 6,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ },
+ AUTH_LDAP_4_ORGANIZATION_MAP: {
+ type: 'textarea',
+ reset: 'AUTH_LDAP_4_ORGANIZATION_MAP',
+ codeMirror: true,
+ rows: 6,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ },
+ AUTH_LDAP_4_TEAM_MAP: {
+ type: 'textarea',
+ reset: 'AUTH_LDAP_4_TEAM_MAP',
+ codeMirror: true,
+ rows: 6,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ }
+ },
+
+ buttons: {
+ reset: {
+ ngShow: '!user_is_system_auditor',
+ ngClick: 'vm.resetAllConfirm()',
+ label: i18n._('Revert all to default'),
+ class: 'Form-resetAll'
+ },
+ cancel: {
+ ngClick: 'vm.formCancel()',
+ },
+ save: {
+ ngClick: 'vm.formSave()',
+ ngDisabled: "!ldap_auth || configuration_ldap4_template_form.$invalid || configuration_ldap4_template_form.$pending"
+ }
+ }
+ };
+}
+];
diff --git a/awx/ui/client/src/configuration/auth-form/sub-forms/auth-ldap5.form.js b/awx/ui/client/src/configuration/auth-form/sub-forms/auth-ldap5.form.js
new file mode 100644
index 0000000000..fa93437367
--- /dev/null
+++ b/awx/ui/client/src/configuration/auth-form/sub-forms/auth-ldap5.form.js
@@ -0,0 +1,108 @@
+/*************************************************
+ * Copyright (c) 2018 Ansible, Inc.
+ *
+ * All Rights Reserved
+ *************************************************/
+
+export default ['i18n', function(i18n) {
+ return {
+ // editTitle: 'Authorization Configuration',
+ name: 'configuration_ldap5_template',
+ showActions: true,
+ showHeader: false,
+
+ fields: {
+ AUTH_LDAP_5_SERVER_URI: {
+ type: 'text',
+ reset: 'AUTH_LDAP_5_SERVER_URI'
+ },
+ AUTH_LDAP_5_BIND_DN: {
+ type: 'text',
+ reset: 'AUTH_LDAP_5_BIND_DN'
+ },
+ AUTH_LDAP_5_BIND_PASSWORD: {
+ type: 'sensitive',
+ hasShowInputButton: true,
+ },
+ AUTH_LDAP_5_USER_SEARCH: {
+ type: 'textarea',
+ rows: 6,
+ codeMirror: true,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ reset: 'AUTH_LDAP_5_USER_SEARCH'
+ },
+ AUTH_LDAP_5_GROUP_SEARCH: {
+ type: 'textarea',
+ rows: 6,
+ codeMirror: true,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ reset: 'AUTH_LDAP_5_GROUP_SEARCH'
+ },
+ AUTH_LDAP_5_USER_DN_TEMPLATE: {
+ type: 'text',
+ reset: 'AUTH_LDAP_5_USER_DN_TEMPLATE'
+ },
+ AUTH_LDAP_5_USER_ATTR_MAP: {
+ type: 'textarea',
+ reset: 'AUTH_LDAP_5_USER_ATTR_MAP',
+ rows: 6,
+ codeMirror: true,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ },
+ AUTH_LDAP_5_GROUP_TYPE: {
+ type: 'select',
+ reset: 'AUTH_LDAP_5_GROUP_TYPE',
+ ngOptions: 'group.label for group in AUTH_LDAP_5_GROUP_TYPE_options track by group.value',
+ },
+ AUTH_LDAP_5_REQUIRE_GROUP: {
+ type: 'text',
+ reset: 'AUTH_LDAP_5_REQUIRE_GROUP'
+ },
+ AUTH_LDAP_5_DENY_GROUP: {
+ type: 'text',
+ reset: 'AUTH_LDAP_5_DENY_GROUP'
+ },
+ AUTH_LDAP_5_START_TLS: {
+ type: 'toggleSwitch'
+ },
+ AUTH_LDAP_5_USER_FLAGS_BY_GROUP: {
+ type: 'textarea',
+ reset: 'AUTH_LDAP_5_USER_FLAGS_BY_GROUP',
+ codeMirror: true,
+ rows: 6,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ },
+ AUTH_LDAP_5_ORGANIZATION_MAP: {
+ type: 'textarea',
+ reset: 'AUTH_LDAP_5_ORGANIZATION_MAP',
+ codeMirror: true,
+ rows: 6,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ },
+ AUTH_LDAP_5_TEAM_MAP: {
+ type: 'textarea',
+ reset: 'AUTH_LDAP_5_TEAM_MAP',
+ codeMirror: true,
+ rows: 6,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ }
+ },
+
+ buttons: {
+ reset: {
+ ngShow: '!user_is_system_auditor',
+ ngClick: 'vm.resetAllConfirm()',
+ label: i18n._('Revert all to default'),
+ class: 'Form-resetAll'
+ },
+ cancel: {
+ ngClick: 'vm.formCancel()',
+ },
+ save: {
+ ngClick: 'vm.formSave()',
+ ngDisabled: "!ldap_auth || configuration_ldap5_template_form.$invalid || configuration_ldap5_template_form.$pending"
+ }
+ }
+ };
+}
+];
diff --git a/awx/ui/client/src/configuration/auth-form/sub-forms/auth-saml.form.js b/awx/ui/client/src/configuration/auth-form/sub-forms/auth-saml.form.js
index c7c8cc289d..ad103461f9 100644
--- a/awx/ui/client/src/configuration/auth-form/sub-forms/auth-saml.form.js
+++ b/awx/ui/client/src/configuration/auth-form/sub-forms/auth-saml.form.js
@@ -71,15 +71,49 @@ export default ['i18n', function(i18n) {
codeMirror: true,
class: 'Form-textAreaLabel Form-formGroup--fullWidth'
},
+ SOCIAL_AUTH_SAML_ORGANIZATION_ATTR: {
+ type: 'textarea',
+ reset: 'SOCIAL_AUTH_SAML_ORGANIZATION_ATTR',
+ rows: 6,
+ codeMirror: true,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth'
+ },
SOCIAL_AUTH_SAML_TEAM_MAP: {
type: 'textarea',
reset: 'SOCIAL_AUTH_SAML_TEAM_MAP',
rows: 6,
codeMirror: true,
class: 'Form-textAreaLabel Form-formGroup--fullWidth'
- }
+ },
+ SOCIAL_AUTH_SAML_TEAM_ATTR: {
+ type: 'textarea',
+ reset: 'SOCIAL_AUTH_SAML_TEAM_ATTR',
+ rows: 6,
+ codeMirror: true,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth'
+ },
+ SOCIAL_AUTH_SAML_SECURITY_CONFIG: {
+ type: 'textarea',
+ reset: 'SOCIAL_AUTH_SAML_SECURITY_CONFIG',
+ codeMirror: true,
+ rows: 6,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ },
+ SOCIAL_AUTH_SAML_SP_EXTRA: {
+ type: 'textarea',
+ reset: 'SOCIAL_AUTH_SAML_SP_EXTRA',
+ codeMirror: true,
+ rows: 6,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ },
+ SOCIAL_AUTH_SAML_EXTRA_DATA: {
+ type: 'textarea',
+ reset: 'SOCIAL_AUTH_SAML_EXTRA_DATA',
+ codeMirror: true,
+ rows: 6,
+ class: 'Form-textAreaLabel Form-formGroup--fullWidth',
+ },
},
-
buttons: {
reset: {
ngShow: '!user_is_system_auditor',
diff --git a/awx/ui/client/src/configuration/configuration.block.less b/awx/ui/client/src/configuration/configuration.block.less
index bc6f4faa38..7cba028ef9 100644
--- a/awx/ui/client/src/configuration/configuration.block.less
+++ b/awx/ui/client/src/configuration/configuration.block.less
@@ -38,6 +38,13 @@
justify-content: flex-end;
}
+.Form-nav--ldapDropdownContainer {
+ align-items: center;
+ width: 100%;
+ margin: 0 0 auto auto;
+ display: flex;
+}
+
.Form-nav--dropdown {
width: 285px;
}
@@ -166,3 +173,7 @@ input#filePickerText {
.LogAggregator-failedNotification{
max-width: 300px;
}
+
+hr {
+ height: 1px;
+}
diff --git a/awx/ui/client/src/configuration/configuration.controller.js b/awx/ui/client/src/configuration/configuration.controller.js
index 8fbf100eaa..fec8c23227 100644
--- a/awx/ui/client/src/configuration/configuration.controller.js
+++ b/awx/ui/client/src/configuration/configuration.controller.js
@@ -15,6 +15,11 @@ export default [
'configurationGithubTeamForm',
'configurationGoogleForm',
'configurationLdapForm',
+ 'configurationLdap1Form',
+ 'configurationLdap2Form',
+ 'configurationLdap3Form',
+ 'configurationLdap4Form',
+ 'configurationLdap5Form',
'configurationRadiusForm',
'configurationTacacsForm',
'configurationSamlForm',
@@ -34,6 +39,11 @@ export default [
configurationGithubTeamForm,
configurationGoogleForm,
configurationLdapForm,
+ configurationLdap1Form,
+ configurationLdap2Form,
+ configurationLdap3Form,
+ configurationLdap4Form,
+ configurationLdap5Form,
configurationRadiusForm,
configurationTacacsForm,
configurationSamlForm,
@@ -52,6 +62,11 @@ export default [
'github_team': configurationGithubTeamForm,
'google_oauth': configurationGoogleForm,
'ldap': configurationLdapForm,
+ 'ldap1': configurationLdap1Form,
+ 'ldap2': configurationLdap2Form,
+ 'ldap3': configurationLdap3Form,
+ 'ldap4': configurationLdap4Form,
+ 'ldap5': configurationLdap5Form,
'radius': configurationRadiusForm,
'tacacs': configurationTacacsForm,
'saml': configurationSamlForm,
@@ -85,9 +100,14 @@ export default [
// the ConfigurationUtils.arrayToList()
// does a string.split(', ') w/ an extra space
// behind the comma.
+
+ const isLdap = (key.indexOf("AUTH_LDAP") !== -1);
+ const isLdapUserSearch = isLdap && (key.indexOf("USER_SEARCH") !== -1);
+ const isLdapGroupSearch = isLdap && (key.indexOf("GROUP_SEARCH") !== -1);
+
if(key === "AD_HOC_COMMANDS"){
$scope[key] = data[key];
- } else if (key === "AUTH_LDAP_USER_SEARCH" || key === "AUTH_LDAP_GROUP_SEARCH") {
+ } else if (isLdapUserSearch || isLdapGroupSearch) {
$scope[key] = JSON.stringify(data[key]);
} else {
$scope[key] = ConfigurationUtils.arrayToList(data[key], key);
@@ -339,7 +359,12 @@ export default [
$scope.$broadcast(key+'_reverted');
}
else if($scope[key + '_field'].hasOwnProperty('codeMirror')){
- if (key === "AUTH_LDAP_USER_SEARCH" || key === "AUTH_LDAP_GROUP_SEARCH") {
+ const isLdap = (key.indexOf("AUTH_LDAP") !== -1);
+
+ const isLdapUserSearch = isLdap && (key.indexOf("USER_SEARCH") !== -1);
+ const isLdapGroupSearch = isLdap && (key.indexOf("GROUP_SEARCH") !== -1);
+
+ if (isLdapUserSearch || isLdapGroupSearch) {
$scope[key] = '[]';
} else {
$scope[key] = '{}';
diff --git a/awx/ui/client/src/configuration/main.js b/awx/ui/client/src/configuration/main.js
index 40715249b1..3846354546 100644
--- a/awx/ui/client/src/configuration/main.js
+++ b/awx/ui/client/src/configuration/main.js
@@ -17,6 +17,11 @@ import configurationGithubOrgForm from './auth-form/sub-forms/auth-github-org.fo
import configurationGithubTeamForm from './auth-form/sub-forms/auth-github-team.form';
import configurationGoogleForm from './auth-form/sub-forms/auth-google-oauth2.form';
import configurationLdapForm from './auth-form/sub-forms/auth-ldap.form.js';
+import configurationLdap1Form from './auth-form/sub-forms/auth-ldap1.form.js';
+import configurationLdap2Form from './auth-form/sub-forms/auth-ldap2.form.js';
+import configurationLdap3Form from './auth-form/sub-forms/auth-ldap3.form.js';
+import configurationLdap4Form from './auth-form/sub-forms/auth-ldap4.form.js';
+import configurationLdap5Form from './auth-form/sub-forms/auth-ldap5.form.js';
import configurationRadiusForm from './auth-form/sub-forms/auth-radius.form.js';
import configurationTacacsForm from './auth-form/sub-forms/auth-tacacs.form.js';
import configurationSamlForm from './auth-form/sub-forms/auth-saml.form';
@@ -39,6 +44,11 @@ angular.module('configuration', [])
.factory('configurationGithubTeamForm', configurationGithubTeamForm)
.factory('configurationGoogleForm', configurationGoogleForm)
.factory('configurationLdapForm', configurationLdapForm)
+ .factory('configurationLdap1Form', configurationLdap1Form)
+ .factory('configurationLdap2Form', configurationLdap2Form)
+ .factory('configurationLdap3Form', configurationLdap3Form)
+ .factory('configurationLdap4Form', configurationLdap4Form)
+ .factory('configurationLdap5Form', configurationLdap5Form)
.factory('configurationRadiusForm', configurationRadiusForm)
.factory('configurationTacacsForm', configurationTacacsForm)
.factory('configurationSamlForm', configurationSamlForm)