From 784c88895af14fc50c153d6f80f91ebe0c7eb2b4 Mon Sep 17 00:00:00 2001 From: Bryan Frimin Date: Tue, 24 Mar 2026 10:38:12 +0100 Subject: [PATCH] Allow editing non-SCIM fields on SCIM-managed profiles Contract start and end dates are never synced by SCIM, so they should remain editable even when a profile is SCIM-managed. The backend now skips overwriting SCIM-synced fields (fullName, kind, position, additionalEmailAddresses) for SCIM profiles, and the frontend disables only those fields instead of the entire form. Signed-off-by: Bryan Frimin --- .../organizations/people/_components/PersonForm.tsx | 13 ++++++++----- pkg/iam/organization_service.go | 10 ++++++---- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/apps/console/src/pages/iam/organizations/people/_components/PersonForm.tsx b/apps/console/src/pages/iam/organizations/people/_components/PersonForm.tsx index 3aadbe16e..bf6f85e0a 100644 --- a/apps/console/src/pages/iam/organizations/people/_components/PersonForm.tsx +++ b/apps/console/src/pages/iam/organizations/people/_components/PersonForm.tsx @@ -77,6 +77,7 @@ export function PersonForm(props: { id?: string; connectionId?: DataID; disabled?: boolean; + scimManaged?: boolean; defaultValues?: z.infer; onSubmit?: () => void; }) { @@ -84,6 +85,7 @@ export function PersonForm(props: { id, connectionId = "", disabled = false, + scimManaged = false, defaultValues = { fullName: "", emailAddress: "", @@ -162,7 +164,7 @@ export function PersonForm(props: { return (
void handleSubmit(e)} className="space-y-4"> - + {id ? ( <> @@ -223,7 +225,7 @@ export function PersonForm(props: { name="kind" type="select" label={__("Type")} - disabled={disabled} + disabled={disabled || scimManaged} > {getRoles(__).map(role => (