fix: LDAP Sync not updating user's VoIP Extensions (#37278)

pull/37427/head^2
Pierre Lehnen 2 months ago committed by GitHub
parent 4d7390c28b
commit 888a234bd3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 5
      .changeset/famous-apricots-compare.md
  2. 10
      apps/meteor/app/importer/server/classes/converters/UserConverter.ts
  3. 1
      apps/meteor/server/lib/ldap/Manager.ts

@ -0,0 +1,5 @@
---
'@rocket.chat/meteor': patch
---
Fixes an issue with LDAP Sync not updating user's VoIP Extensions

@ -24,6 +24,7 @@ export type UserConverterOptions = {
quickUserInsertion?: boolean;
enableEmail2fa?: boolean;
syncVoipExtension?: boolean;
};
export class UserConverter extends RecordConverter<IImportUserRecord, UserConverterOptions & RecordConverterOptions> {
@ -280,7 +281,14 @@ export class UserConverter extends RecordConverter<IImportUserRecord, UserConver
...(userData.bio && { bio: userData.bio }),
...(userData.services?.ldap && { ldap: true }),
...(userData.avatarUrl && { _pendingAvatarUrl: userData.avatarUrl }),
...(this._options.syncVoipExtension && userData.voipExtension && { freeSwitchExtension: userData.voipExtension }),
}),
...(this._options.syncVoipExtension &&
!userData.voipExtension && {
$unset: {
freeSwitchExtension: 1,
},
}),
});
this.addCustomFields(updateData, userData);
@ -353,7 +361,7 @@ export class UserConverter extends RecordConverter<IImportUserRecord, UserConver
...(userData.importIds?.length && { importIds: userData.importIds }),
...(!!userData.customFields && { customFields: userData.customFields }),
...(userData.deleted !== undefined && { active: !userData.deleted }),
...(userData.voipExtension !== undefined && { freeSwitchExtension: userData.voipExtension }),
...(this._options.syncVoipExtension && userData.voipExtension && { freeSwitchExtension: userData.voipExtension }),
...(userData.federated !== undefined && { federated: userData.federated }),
};
}

@ -167,6 +167,7 @@ export class LDAPManager {
flagEmailsAsVerified: settings.get<boolean>('Accounts_Verify_Email_For_External_Accounts') ?? false,
skipExistingUsers: false,
skipUserCallbacks: false,
syncVoipExtension: Boolean(settings.get<string>('LDAP_Extension_Field')),
};
}

Loading…
Cancel
Save