diff --git a/server/lib/blueprints/resourcePolicies.ts b/server/lib/blueprints/resourcePolicies.ts index babb1c10a..ff4a47cc2 100644 --- a/server/lib/blueprints/resourcePolicies.ts +++ b/server/lib/blueprints/resourcePolicies.ts @@ -177,15 +177,7 @@ export async function updateResourcePolicies( }); } - // Sync header auth - await trx - .delete(resourcePolicyHeaderAuth) - .where( - eq( - resourcePolicyHeaderAuth.resourcePolicyId, - resourcePolicyId - ) - ); + // Sync header auth (hash before delete so delete+insert stay adjacent) if (policyData["basic-auth"]) { const basicAuth = policyData["basic-auth"]; const headerAuthHash = await hashPassword( @@ -193,12 +185,29 @@ export async function updateResourcePolicies( `${basicAuth.user}:${basicAuth.password}` ).toString("base64") ); + await trx + .delete(resourcePolicyHeaderAuth) + .where( + eq( + resourcePolicyHeaderAuth.resourcePolicyId, + resourcePolicyId + ) + ); await trx.insert(resourcePolicyHeaderAuth).values({ resourcePolicyId, headerAuthHash, extendedCompatibility: basicAuth["extended-compatibility"] ?? true }); + } else { + await trx + .delete(resourcePolicyHeaderAuth) + .where( + eq( + resourcePolicyHeaderAuth.resourcePolicyId, + resourcePolicyId + ) + ); } // Sync SSO roles