diff --git a/adminfront/src/features/tenants/routes/TenantSchemaPage.tsx b/adminfront/src/features/tenants/routes/TenantSchemaPage.tsx index 17ff2bdf..07e53e9a 100644 --- a/adminfront/src/features/tenants/routes/TenantSchemaPage.tsx +++ b/adminfront/src/features/tenants/routes/TenantSchemaPage.tsx @@ -97,7 +97,6 @@ export function TenantSchemaPage() { useEffect(() => { const rawSchema = tenantQuery.data?.config?.userSchema; - const loginIdField = tenantQuery.data?.config?.loginIdField; if (Array.isArray(rawSchema)) { setFields( @@ -118,7 +117,7 @@ export function TenantSchemaPage() { validation: typeof field?.validation === "string" ? field.validation : "", unsigned: Boolean(field?.unsigned), - isLoginId: field?.key === loginIdField, + isLoginId: Boolean(field?.isLoginId), })), ); } @@ -126,13 +125,13 @@ export function TenantSchemaPage() { const updateMutation = useMutation({ mutationFn: (newFields: SchemaField[]) => { - const loginIdField = newFields.find((f) => f.isLoginId)?.key || ""; + // Remove legacy loginIdField, keep isLoginId natively in userSchema + const newConfig = { ...tenantQuery.data?.config }; + delete newConfig.loginIdField; + newConfig.userSchema = newFields; + return updateTenant(tenantId, { - config: { - ...tenantQuery.data?.config, - userSchema: newFields, - loginIdField: loginIdField, - }, + config: newConfig, }); }, onSuccess: () => { @@ -344,14 +343,10 @@ export function TenantSchemaPage() {