diff --git a/.changeset/thin-parents-beam.md b/.changeset/thin-parents-beam.md new file mode 100644 index 0000000000000..721be9fbdc2c7 --- /dev/null +++ b/.changeset/thin-parents-beam.md @@ -0,0 +1,5 @@ +--- +"@rocket.chat/meteor": patch +--- + +Fixes issue with Login Detection emails showing undefined values instead of the user agent info diff --git a/apps/meteor/ee/server/lib/deviceManagement/session.ts b/apps/meteor/ee/server/lib/deviceManagement/session.ts index 7d68f89942cda..23632257eaaa5 100644 --- a/apps/meteor/ee/server/lib/deviceManagement/session.ts +++ b/apps/meteor/ee/server/lib/deviceManagement/session.ts @@ -3,6 +3,7 @@ import { Users } from '@rocket.chat/models'; import { Accounts } from 'meteor/accounts-base'; import { Meteor } from 'meteor/meteor'; import moment from 'moment'; +import type { Headers } from 'node-fetch'; import { UAParser } from 'ua-parser-js'; import * as Mailer from '../../../../app/mailer/server/api'; @@ -66,7 +67,9 @@ export const listenSessionLogin = () => { username, emails: [{ address: email }], } = user; - const { browser, os, device, cpu, app } = await uaParser(connection.httpHeaders['user-agent']); + // TODO: Find why the httpheaders is being casted to IncomingHttpHeaders instead of Headers + const userAgentString = connection?.httpHeaders && (connection.httpHeaders as unknown as Headers).get('user-agent'); + const { browser, os, device, cpu, app } = await uaParser(userAgentString || ''); const mailData = { name,