Skip to content

Commit 44b9431

Browse files
waleedlatif1claude
andcommitted
fix(microsoft-ad): prevent empty values leaking into PATCH requests
- Use operation-aware checks for accountEnabled and visibility in block params to prevent create defaults bleeding into update operations - Change tool body guards from `!== undefined` to truthy checks so empty-string inputs from unfilled subBlocks are omitted from PATCH Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 65b8e8e commit 44b9431

File tree

3 files changed

+22
-15
lines changed

3 files changed

+22
-15
lines changed

apps/sim/blocks/blocks/microsoft_ad.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -333,8 +333,12 @@ export const MicrosoftAdBlock: BlockConfig<MicrosoftAdResponse> = {
333333
if (params.top) result.top = Number(params.top)
334334
if (params.filter) result.filter = params.filter
335335
if (params.search) result.search = params.search
336-
const accountEnabledVal = params.accountEnabled || params.accountEnabledCreate
337-
if (accountEnabledVal) result.accountEnabled = accountEnabledVal === 'true'
336+
if (params.operation === 'update_user') {
337+
if (params.accountEnabled) result.accountEnabled = params.accountEnabled === 'true'
338+
} else if (params.operation === 'create_user') {
339+
if (params.accountEnabledCreate)
340+
result.accountEnabled = params.accountEnabledCreate === 'true'
341+
}
338342
if (params.mailEnabled !== undefined) result.mailEnabled = params.mailEnabled === 'true'
339343
if (params.securityEnabled !== undefined)
340344
result.securityEnabled = params.securityEnabled === 'true'
@@ -343,8 +347,11 @@ export const MicrosoftAdBlock: BlockConfig<MicrosoftAdResponse> = {
343347
if (params.groupMailNickname) result.mailNickname = params.groupMailNickname
344348
if (params.groupDescription) result.description = params.groupDescription
345349
if (params.groupTypes !== undefined) result.groupTypes = params.groupTypes
346-
const visibilityVal = params.visibility || params.visibilityCreate
347-
if (visibilityVal) result.visibility = visibilityVal
350+
if (params.operation === 'update_group') {
351+
if (params.visibility) result.visibility = params.visibility
352+
} else if (params.operation === 'create_group') {
353+
if (params.visibilityCreate) result.visibility = params.visibilityCreate
354+
}
348355
return result
349356
},
350357
},

apps/sim/tools/microsoft_ad/update_group.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,10 @@ export const updateGroupTool: ToolConfig<
6868
}),
6969
body: (params) => {
7070
const body: Record<string, unknown> = {}
71-
if (params.displayName !== undefined) body.displayName = params.displayName
72-
if (params.description !== undefined) body.description = params.description
73-
if (params.mailNickname !== undefined) body.mailNickname = params.mailNickname
74-
if (params.visibility !== undefined) body.visibility = params.visibility
71+
if (params.displayName) body.displayName = params.displayName
72+
if (params.description) body.description = params.description
73+
if (params.mailNickname) body.mailNickname = params.mailNickname
74+
if (params.visibility) body.visibility = params.visibility
7575
return body
7676
},
7777
},

apps/sim/tools/microsoft_ad/update_user.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -92,13 +92,13 @@ export const updateUserTool: ToolConfig<
9292
}),
9393
body: (params) => {
9494
const body: Record<string, unknown> = {}
95-
if (params.displayName !== undefined) body.displayName = params.displayName
96-
if (params.givenName !== undefined) body.givenName = params.givenName
97-
if (params.surname !== undefined) body.surname = params.surname
98-
if (params.jobTitle !== undefined) body.jobTitle = params.jobTitle
99-
if (params.department !== undefined) body.department = params.department
100-
if (params.officeLocation !== undefined) body.officeLocation = params.officeLocation
101-
if (params.mobilePhone !== undefined) body.mobilePhone = params.mobilePhone
95+
if (params.displayName) body.displayName = params.displayName
96+
if (params.givenName) body.givenName = params.givenName
97+
if (params.surname) body.surname = params.surname
98+
if (params.jobTitle) body.jobTitle = params.jobTitle
99+
if (params.department) body.department = params.department
100+
if (params.officeLocation) body.officeLocation = params.officeLocation
101+
if (params.mobilePhone) body.mobilePhone = params.mobilePhone
102102
if (params.accountEnabled !== undefined) body.accountEnabled = params.accountEnabled
103103
return body
104104
},

0 commit comments

Comments
 (0)