From 76c1efd12d525381d77d12200d397afb644ce3ac Mon Sep 17 00:00:00 2001 From: Rodrigo Rodriguez Date: Tue, 1 Aug 2023 11:26:34 -0300 Subject: [PATCH] fix(all): Minor changes in PROD. --- packages/core.gbapp/services/GBMinService.ts | 31 +++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/packages/core.gbapp/services/GBMinService.ts b/packages/core.gbapp/services/GBMinService.ts index 3ee4f880..679ce33e 100644 --- a/packages/core.gbapp/services/GBMinService.ts +++ b/packages/core.gbapp/services/GBMinService.ts @@ -1198,8 +1198,37 @@ export class GBMinService { context.activity.text = context.activity.text.trim(); const member = context.activity.from; + let memberId, email; + + // Processes e-mail from id in case of Teams messages. - let user = await sec.ensureUser(min.instance.instanceId, member.id, member.name, '', 'web', member.name, null); + if (member.id.startsWith("29:")){ + const token = await (min.adminService as any) + ['acquireElevatedToken'](min.instance.instanceId, false); + + const url = `https://graph.microsoft.com/v1.0/users/${context.activity.from.aadObjectId}`; + const options = { + method: 'GET', + headers: { + Authorization: `Bearer ${token}` + } + }; + + try { + const res = await fetch(url, options); + const member = JSON.parse(await res.text()); + memberId = member.mail; + email = member.mail; + } catch (error) { + throw `[botId:${min.instance.botId}] Error calling Teams to get user info: ${error}.`; + } + } + else + { + memberId = member.id; + } + + let user = await sec.ensureUser(min.instance.instanceId, memberId, member.name, '', 'web', member.name, email); const userId = user.userId; const params = user.params ? JSON.parse(user.params) : {};