From 203a3703d2e29c2ed9284f264fd1431a7176055f Mon Sep 17 00:00:00 2001 From: ukumar-ks Date: Mon, 8 Jun 2026 18:25:41 +0530 Subject: [PATCH 1/2] Handle existing role enforcements with update instead of add --- KeeperSdk/src/roles/roleUtils.ts | 11 ++++++-- keeperapi/src/commands.ts | 45 +------------------------------- 2 files changed, 10 insertions(+), 46 deletions(-) diff --git a/KeeperSdk/src/roles/roleUtils.ts b/KeeperSdk/src/roles/roleUtils.ts index ab8519cd..5e3c5037 100644 --- a/KeeperSdk/src/roles/roleUtils.ts +++ b/KeeperSdk/src/roles/roleUtils.ts @@ -182,10 +182,17 @@ export async function applyRoleEnforcements( continue } + const exists = roleHasEnforcement(roleId, enforcement, existingLinks) const response = await auth.executeRestCommand( - roleEnforcementAddCommand({ role_id: roleId, enforcement, value }) + exists + ? roleEnforcementUpdateCommand({ role_id: roleId, enforcement, value }) + : roleEnforcementAddCommand({ role_id: roleId, enforcement, value }) + ) + assertCommandSucceeded( + response, + `role_enforcement_${exists ? 'update' : 'add'} failed: ${enforcement}`, + ResultCodes.ROLE_ENFORCEMENT_FAILED ) - assertCommandSucceeded(response, `role_enforcement_add failed: ${enforcement}`, ResultCodes.ROLE_ENFORCEMENT_FAILED) } } diff --git a/keeperapi/src/commands.ts b/keeperapi/src/commands.ts index 4b9bff28..e897196d 100644 --- a/keeperapi/src/commands.ts +++ b/keeperapi/src/commands.ts @@ -189,49 +189,6 @@ export const roleEnforcementAddCommand = ( request: RoleEnforcementAddRequest ): RestCommand => createCommand(request, 'role_enforcement_add') -export const roleEnforcementUpdateCommand = ( - request: RoleEnforcementAddRequest -): RestCommand => createCommand(request, 'role_enforcement_update') - -export type RoleEnforcementRemoveRequest = { - role_id: number - enforcement: string -} - -export const roleEnforcementRemoveCommand = ( - request: RoleEnforcementRemoveRequest -): RestCommand => createCommand(request, 'role_enforcement_remove') - -export type EnterpriseAllocateIdsRequest = { - number_requested: number -} - -export const enterpriseAllocateIdsCommand = ( - request: EnterpriseAllocateIdsRequest -): RestCommand => - createCommand(request, 'enterprise_allocate_ids') - -export type RoleEditRequest = { - role_id: number - node_id: number - encrypted_data: string - visible_below: boolean - new_user_inherit: boolean -} - -export const roleAddCommand = (request: RoleEditRequest): RestCommand => - createCommand(request, 'role_add') - -export const roleUpdateCommand = (request: RoleEditRequest): RestCommand => - createCommand(request, 'role_update') - -export type RoleDeleteRequest = { - role_id: number -} - -export const roleDeleteCommand = (request: RoleDeleteRequest): RestCommand => - createCommand(request, 'role_delete') - export type MoveRequest = { to_type: 'user_folder' | 'shared_folder' | 'shared_folder_folder' to_uid?: string @@ -1620,4 +1577,4 @@ export interface MSPKey { encrypted_msp_tree_key: string; encrypted_msp_tree_key_type: KeyType; } -*/ +*/ \ No newline at end of file From 207342ecac09fe21e77ac2b4013269bbf7cb5a8d Mon Sep 17 00:00:00 2001 From: ukumar-ks Date: Mon, 8 Jun 2026 18:29:09 +0530 Subject: [PATCH 2/2] prettier improvement --- keeperapi/src/commands.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keeperapi/src/commands.ts b/keeperapi/src/commands.ts index e897196d..011c1d33 100644 --- a/keeperapi/src/commands.ts +++ b/keeperapi/src/commands.ts @@ -1577,4 +1577,4 @@ export interface MSPKey { encrypted_msp_tree_key: string; encrypted_msp_tree_key_type: KeyType; } -*/ \ No newline at end of file +*/