RANGER-4718 : Skip showing 'Page not found' page for INVALID_INPUT_DATA validation in User Profile
diff --git a/security-admin/src/main/webapp/react-webapp/src/views/UserGroupRoleListing/users_details/UserFormComp.jsx b/security-admin/src/main/webapp/react-webapp/src/views/UserGroupRoleListing/users_details/UserFormComp.jsx
index 64a536c..cb0544c 100644
--- a/security-admin/src/main/webapp/react-webapp/src/views/UserGroupRoleListing/users_details/UserFormComp.jsx
+++ b/security-admin/src/main/webapp/react-webapp/src/views/UserGroupRoleListing/users_details/UserFormComp.jsx
@@ -73,39 +73,41 @@
   const toastId = React.useRef(null);
 
   const handleSubmit = async (formData) => {
-    let userFormData = { ...formData };
+    let userFormData = {};
 
-    let userRoleListVal = [];
-    if (userFormData.groupIdList) {
-      userFormData.groupIdList = userFormData.groupIdList.map(
+    userFormData["name"] = formData.name;
+    userFormData["password"] = formData.password;
+    userFormData["firstName"] = formData.firstName;
+    userFormData["lastName"] = formData.lastName;
+    userFormData["emailAddress"] = formData.emailAddress;
+    userFormData["userRoleList"] = formData.userRoleList
+      ? [formData.userRoleList.value]
+      : [];
+
+    if (formData.groupIdList) {
+      userFormData["groupIdList"] = formData.groupIdList.map(
         (obj) => obj.value + ""
       );
     }
-    if (userFormData.userRoleList) {
-      userRoleListVal.push(userFormData.userRoleList.value);
-      userFormData.userRoleList = userRoleListVal;
-    }
-    delete userFormData.passwordConfirm;
-    userFormData.status = ActivationStatus.ACT_STATUS_ACTIVE.value;
-    if (isEditView) {
-      userFormData = {
-        ...userInfo,
-        ...userFormData
-      };
-      delete userFormData.password;
-    }
+
+    userFormData["status"] = ActivationStatus.ACT_STATUS_ACTIVE.value;
+
     setPreventUnblock(true);
     if (isEditView) {
+      let userEditData = { ...userInfo, ...userFormData };
+      delete userEditData.password;
+
       try {
         dispatch({
           type: "SET_BLOCK_UI",
           blockUI: true
         });
-        const userEdit = await fetchApi({
+        await fetchApi({
           url: `xusers/secure/users/${userInfo.id}`,
           method: "put",
-          data: userFormData
+          data: userEditData
         });
+
         dispatch({
           type: "SET_BLOCK_UI",
           blockUI: false
@@ -118,7 +120,7 @@
           blockUI: false
         });
         serverError(error);
-        console.error(`Error occurred while creating user`);
+        console.error("Error occurred while updating user");
       }
     } else {
       try {
@@ -126,11 +128,12 @@
           type: "SET_BLOCK_UI",
           blockUI: true
         });
-        const userCreate = await fetchApi({
+        await fetchApi({
           url: "xusers/secure/users",
           method: "post",
           data: userFormData
         });
+
         let tblpageData = {};
         if (state && state !== null) {
           tblpageData = state.tblpageData;
@@ -142,6 +145,7 @@
             }
           }
         }
+
         dispatch({
           type: "SET_BLOCK_UI",
           blockUI: false
diff --git a/security-admin/src/main/webapp/react-webapp/src/views/UserProfile.jsx b/security-admin/src/main/webapp/react-webapp/src/views/UserProfile.jsx
index 64c695b..d5f3018 100644
--- a/security-admin/src/main/webapp/react-webapp/src/views/UserProfile.jsx
+++ b/security-admin/src/main/webapp/react-webapp/src/views/UserProfile.jsx
@@ -26,7 +26,7 @@
 import { BlockUi, scrollToError } from "../components/CommonComponents";
 import withRouter from "Hooks/withRouter";
 import { UserTypes, RegexValidation } from "Utils/XAEnums";
-import { has, isEmpty, isUndefined } from "lodash";
+import { cloneDeep, has, isEmpty, isUndefined } from "lodash";
 import { RegexMessage } from "../utils/XAMessages";
 import { fetchApi } from "Utils/fetchAPI";
 import CustomBreadcrumb from "./CustomBreadcrumb";
@@ -40,7 +40,7 @@
   }
 
   updateUserInfo = async (values) => {
-    const userProps = getUserProfile();
+    const userProps = cloneDeep(getUserProfile());
 
     userProps.firstName = values.firstName;
     userProps.emailAddress = values.emailAddress;
@@ -51,7 +51,8 @@
       const profResp = await fetchApi({
         url: "users",
         method: "put",
-        data: userProps
+        data: userProps,
+        skipNavigate: true
       });
       this.setState({ blockUI: false });
       setUserProfile(profResp.data);
@@ -75,14 +76,13 @@
     const userProps = getUserProfile();
 
     let jsonData = {};
-    jsonData["emailAddress"] = "";
     jsonData["loginId"] = userProps.loginId;
     jsonData["oldPassword"] = values.oldPassword;
     jsonData["updPassword"] = values.newPassword;
 
     try {
       this.setState({ blockUI: true });
-      const passwdResp = await fetchApi({
+      await fetchApi({
         url: "users/" + userProps.id + "/passwordchange",
         method: "post",
         data: jsonData,
@@ -160,7 +160,7 @@
 
     if (
       values &&
-      has(values, "lastName") &&
+      !isEmpty(values?.lastName) &&
       !RegexValidation.NAME_VALIDATION.regexExpressionForFirstAndLastName.test(
         values.lastName
       )
@@ -176,6 +176,7 @@
     ) {
       errors.emailAddress = RegexValidation.EMAIL_VALIDATION.message;
     }
+
     return errors;
   };
 
@@ -217,14 +218,7 @@
                       emailAddress: userProps.emailAddress,
                       userRoleList: userProps.userRoleList[0]
                     }}
-                    render={({
-                      handleSubmit,
-                      form,
-                      submitting,
-                      values,
-                      invalid,
-                      errors
-                    }) => (
+                    render={({ handleSubmit, form, invalid, errors }) => (
                       <form
                         onSubmit={(event) => {
                           if (invalid) {
@@ -433,7 +427,10 @@
                               variant="secondary"
                               type="button"
                               size="sm"
-                              onClick={() => this.props.navigate("/")}
+                              onClick={() => {
+                                form.reset();
+                                this.props.navigate("/");
+                              }}
                               data-id="cancel"
                               data-cy="cancel"
                             >
@@ -455,7 +452,6 @@
                       handleSubmit,
                       form,
                       submitting,
-                      values,
                       invalid,
                       errors
                     }) => (
@@ -640,7 +636,10 @@
                               variant="secondary"
                               type="button"
                               size="sm"
-                              onClick={() => this.props.navigate("/")}
+                              onClick={() => {
+                                form.reset();
+                                this.props.navigate("/");
+                              }}
                               data-id="cancel"
                               data-cy="cancel"
                             >