From 0c9f129c74ee65aa88ea0617e46b0609a9acefc9 Mon Sep 17 00:00:00 2001 From: Tarang Date: Mon, 20 Mar 2023 17:57:43 +1100 Subject: [PATCH] Fix issues with Microsoft Provider (#6702) --- .../api/v1/accounts/microsoft/authorizations_controller.rb | 3 ++- app/controllers/microsoft/callbacks_controller.rb | 4 ++-- .../v1/accounts/microsoft/authorization_controller_spec.rb | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/controllers/api/v1/accounts/microsoft/authorizations_controller.rb b/app/controllers/api/v1/accounts/microsoft/authorizations_controller.rb index 49a4bdcb0..bee47b213 100644 --- a/app/controllers/api/v1/accounts/microsoft/authorizations_controller.rb +++ b/app/controllers/api/v1/accounts/microsoft/authorizations_controller.rb @@ -7,11 +7,12 @@ class Api::V1::Accounts::Microsoft::AuthorizationsController < Api::V1::Accounts redirect_url = microsoft_client.auth_code.authorize_url( { redirect_uri: "#{base_url}/microsoft/callback", - scope: 'offline_access https://outlook.office.com/IMAP.AccessAsUser.All https://outlook.office.com/SMTP.Send openid', + scope: 'offline_access https://outlook.office.com/IMAP.AccessAsUser.All https://outlook.office.com/SMTP.Send openid profile', prompt: 'consent' } ) if redirect_url + email = email.downcase ::Redis::Alfred.setex(email, Current.account.id, 5.minutes) render json: { success: true, url: redirect_url } else diff --git a/app/controllers/microsoft/callbacks_controller.rb b/app/controllers/microsoft/callbacks_controller.rb index c3ecb8c09..215103bd4 100644 --- a/app/controllers/microsoft/callbacks_controller.rb +++ b/app/controllers/microsoft/callbacks_controller.rb @@ -8,7 +8,7 @@ class Microsoft::CallbacksController < ApplicationController ) inbox = find_or_create_inbox - ::Redis::Alfred.delete(users_data['email']) + ::Redis::Alfred.delete(users_data['email'].downcase) redirect_to app_microsoft_inbox_agents_url(account_id: account.id, inbox_id: inbox.id) rescue StandardError => e ChatwootExceptionTracker.new(e).capture_exception @@ -31,7 +31,7 @@ class Microsoft::CallbacksController < ApplicationController end def account_id - ::Redis::Alfred.get(users_data['email']) + ::Redis::Alfred.get(users_data['email'].downcase) end def account diff --git a/spec/controllers/api/v1/accounts/microsoft/authorization_controller_spec.rb b/spec/controllers/api/v1/accounts/microsoft/authorization_controller_spec.rb index b65ea160d..60948bce1 100644 --- a/spec/controllers/api/v1/accounts/microsoft/authorization_controller_spec.rb +++ b/spec/controllers/api/v1/accounts/microsoft/authorization_controller_spec.rb @@ -36,7 +36,7 @@ RSpec.describe 'Microsoft Authorization API', type: :request do response_url = microsoft_service.microsoft_client.auth_code.authorize_url( { redirect_uri: "#{ENV.fetch('FRONTEND_URL', 'http://localhost:3000')}/microsoft/callback", - scope: 'offline_access https://outlook.office.com/IMAP.AccessAsUser.All https://outlook.office.com/SMTP.Send openid', + scope: 'offline_access https://outlook.office.com/IMAP.AccessAsUser.All https://outlook.office.com/SMTP.Send openid profile', prompt: 'consent' } )