From 6536f5a453c20e0ecbecf2d544e27e0c162ecc20 Mon Sep 17 00:00:00 2001 From: Jake McDermott Date: Wed, 26 Feb 2020 13:40:26 -0500 Subject: [PATCH] Delete falsey project creds before POST|PATCH Depending on the permissions of the user submitting the form, the API might throw an unexpected error if our creation request has a zero-length string as its credential field. As a work-around, normalize falsey credential fields by deleting them. --- awx/ui_next/src/screens/Project/ProjectAdd/ProjectAdd.jsx | 7 +++++++ .../src/screens/Project/ProjectEdit/ProjectEdit.jsx | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/awx/ui_next/src/screens/Project/ProjectAdd/ProjectAdd.jsx b/awx/ui_next/src/screens/Project/ProjectAdd/ProjectAdd.jsx index 300627247d..f8a1950490 100644 --- a/awx/ui_next/src/screens/Project/ProjectAdd/ProjectAdd.jsx +++ b/awx/ui_next/src/screens/Project/ProjectAdd/ProjectAdd.jsx @@ -13,6 +13,13 @@ function ProjectAdd() { if (values.scm_type === 'manual') { values.scm_type = ''; } + if (!values.credential) { + // Depending on the permissions of the user submitting the form, + // the API might throw an unexpected error if our creation request + // has a zero-length string as its credential field. As a work-around, + // normalize falsey credential fields by deleting them. + delete values.credential; + } setFormSubmitError(null); try { const { diff --git a/awx/ui_next/src/screens/Project/ProjectEdit/ProjectEdit.jsx b/awx/ui_next/src/screens/Project/ProjectEdit/ProjectEdit.jsx index bde5500cb6..94fcaf3edc 100644 --- a/awx/ui_next/src/screens/Project/ProjectEdit/ProjectEdit.jsx +++ b/awx/ui_next/src/screens/Project/ProjectEdit/ProjectEdit.jsx @@ -13,6 +13,13 @@ function ProjectEdit({ project }) { if (values.scm_type === 'manual') { values.scm_type = ''; } + if (!values.credential) { + // Depending on the permissions of the user submitting the form, + // the API might throw an unexpected error if our creation request + // has a zero-length string as its credential field. As a work-around, + // normalize falsey credential fields by deleting them. + delete values.credential; + } try { const { data: { id },