fix
All checks were successful
Build And Deploy Main / build-and-deploy (push) Successful in 36s

This commit is contained in:
2026-03-16 16:22:38 -04:00
parent 118c765b61
commit 1500254db7
2 changed files with 33 additions and 2 deletions

View File

@@ -454,16 +454,22 @@ exports.saveExternalUserPermission = async (req, res) => {
external_user_id: externalUserId,
allow_site: allowSite
});
const normalizedTitle = `${title || ""}`.trim();
const payload = {
external_user_id: externalUserId,
allow_site: allowSite,
username,
name,
title,
email,
permissions,
edit_by: editorId
};
if (normalizedTitle) {
payload.title = normalizedTitle;
} else if (existing?.title) {
// Keep existing title when client does not provide one.
payload.title = existing.title;
}
if (!existing) {
payload.create_by = editorId;
}

View File

@@ -18,6 +18,7 @@ const ExternalEmployeesImport = () => {
const [selectedEmployee, setSelectedEmployee] = useState(undefined);
const [selectedPermissions, setSelectedPermissions] = useState([SYSTEM_ACCESS_PERMISSION]);
const [selectedAllowSite, setSelectedAllowSite] = useState(currentSite);
const [existingPermissionMap, setExistingPermissionMap] = useState({});
useEffect(() => {
if (!AuthService.canAddOrEditEmployees()) {
@@ -27,8 +28,26 @@ const ExternalEmployeesImport = () => {
return;
}
loadExternalEmployees();
loadExistingPermissions();
}, []);
const loadExistingPermissions = () => {
EmployeeService.getExternalUserPermissionsList(currentSite)
.then((response) => {
const records = Array.isArray(response?.data) ? response.data : [];
const nextMap = {};
records.forEach((item) => {
const key = item?.external_user_id;
if (!key) return;
nextMap[key] = item;
});
setExistingPermissionMap(nextMap);
})
.catch(() => {
setExistingPermissionMap({});
});
};
const loadExternalEmployees = () => {
setLoading(true);
EmployeeService.getExternalEmployeesList()
@@ -128,6 +147,7 @@ const ExternalEmployeesImport = () => {
permissions: selectedPermissions
})
.then(() => {
loadExistingPermissions();
closePermissionModal();
})
.catch((error) => {
@@ -202,12 +222,17 @@ const ExternalEmployeesImport = () => {
<td>{item?.title}</td>
<td>{item?.site}</td>
<td>
{(() => {
const hasExistingPermission = !!existingPermissionMap?.[item?.employee_id];
return (
<button
className="btn btn-primary btn-sm"
onClick={() => openPermissionModal(item)}
>
Add
{hasExistingPermission ? "Edit" : "Add"}
</button>
);
})()}
</td>
</tr>
))}