Skip to content

Commit 888a234

Browse files
fix: LDAP Sync not updating user's VoIP Extensions (RocketChat#37278)
1 parent 4d7390c commit 888a234

3 files changed

Lines changed: 15 additions & 1 deletion

File tree

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@rocket.chat/meteor': patch
3+
---
4+
5+
Fixes an issue with LDAP Sync not updating user's VoIP Extensions

apps/meteor/app/importer/server/classes/converters/UserConverter.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export type UserConverterOptions = {
2424

2525
quickUserInsertion?: boolean;
2626
enableEmail2fa?: boolean;
27+
syncVoipExtension?: boolean;
2728
};
2829

2930
export class UserConverter extends RecordConverter<IImportUserRecord, UserConverterOptions & RecordConverterOptions> {
@@ -280,7 +281,14 @@ export class UserConverter extends RecordConverter<IImportUserRecord, UserConver
280281
...(userData.bio && { bio: userData.bio }),
281282
...(userData.services?.ldap && { ldap: true }),
282283
...(userData.avatarUrl && { _pendingAvatarUrl: userData.avatarUrl }),
284+
...(this._options.syncVoipExtension && userData.voipExtension && { freeSwitchExtension: userData.voipExtension }),
283285
}),
286+
...(this._options.syncVoipExtension &&
287+
!userData.voipExtension && {
288+
$unset: {
289+
freeSwitchExtension: 1,
290+
},
291+
}),
284292
});
285293

286294
this.addCustomFields(updateData, userData);
@@ -353,7 +361,7 @@ export class UserConverter extends RecordConverter<IImportUserRecord, UserConver
353361
...(userData.importIds?.length && { importIds: userData.importIds }),
354362
...(!!userData.customFields && { customFields: userData.customFields }),
355363
...(userData.deleted !== undefined && { active: !userData.deleted }),
356-
...(userData.voipExtension !== undefined && { freeSwitchExtension: userData.voipExtension }),
364+
...(this._options.syncVoipExtension && userData.voipExtension && { freeSwitchExtension: userData.voipExtension }),
357365
...(userData.federated !== undefined && { federated: userData.federated }),
358366
};
359367
}

apps/meteor/server/lib/ldap/Manager.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ export class LDAPManager {
167167
flagEmailsAsVerified: settings.get<boolean>('Accounts_Verify_Email_For_External_Accounts') ?? false,
168168
skipExistingUsers: false,
169169
skipUserCallbacks: false,
170+
syncVoipExtension: Boolean(settings.get<string>('LDAP_Extension_Field')),
170171
};
171172
}
172173

0 commit comments

Comments
 (0)