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"
>