diff --git a/onedrive_integration_odoo/__manifest__.py b/onedrive_integration_odoo/__manifest__.py index a99af5e34..afcc279d5 100644 --- a/onedrive_integration_odoo/__manifest__.py +++ b/onedrive_integration_odoo/__manifest__.py @@ -21,7 +21,7 @@ ############################################################################### { 'name': "Onedrive Integration", - 'version': "17.0.1.0.1", + 'version': "17.0.1.0.2", 'category': "Productivity", 'summary': """Upload and download files in Onedrive using odoo """, 'description': """This module was developed to upload files to Onedrive as diff --git a/onedrive_integration_odoo/doc/RELEASE_NOTES.md b/onedrive_integration_odoo/doc/RELEASE_NOTES.md index efe836220..ca751ac99 100644 --- a/onedrive_integration_odoo/doc/RELEASE_NOTES.md +++ b/onedrive_integration_odoo/doc/RELEASE_NOTES.md @@ -7,4 +7,9 @@ #### 16.08.2024 #### Version 17.0.1.0.1 #### UPDT -- Added modules field and changed view \ No newline at end of file +- Added modules field and changed view + +#### 29.03.2025 +#### Version 17.0.1.0.2 +#### BUG FIX +- Added /consumers endpoint \ No newline at end of file diff --git a/onedrive_integration_odoo/models/res_config_settings.py b/onedrive_integration_odoo/models/res_config_settings.py index 6e47d6dcc..afd0178b8 100644 --- a/onedrive_integration_odoo/models/res_config_settings.py +++ b/onedrive_integration_odoo/models/res_config_settings.py @@ -81,36 +81,45 @@ class ResConfigSettings(models.TransientModel): tenant_id = self.env['ir.config_parameter'].get_param( 'onedrive_integration_odoo.tenant_id', '') res = requests.post( - f"https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token", + f"https://login.microsoftonline.com/common/oauth2/v2.0/token", data=data, headers={"content-type": "application/x-www-form-urlencoded"}) response = res.content and res.json() or {} + if 'error' in response: - raise UserError(_("Error '%s': Please check the credentials.", - response['error'])) - else: - authority = 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize' - action = self.env["ir.actions.client"].sudo()._for_xml_id( - "onedrive_integration_odoo.onedrive_dashboard_action") - base_url = request.env['ir.config_parameter'].get_param( - 'web.base.url') - url_return = base_url + '/web#id=%d&action=%d&view_type=form&model=%s' \ - % (self.id, action['id'], 'onedrive.dashboard') - encoded_params = urls.url_encode({ - 'response_type': 'code', - 'client_id': self.env['ir.config_parameter'].get_param( - 'onedrive_integration_odoo.client_id', ''), - 'state': json.dumps({ - 'onedrive_config_id': self.id, - 'url_return': url_return - }), - 'scope': ['offline_access openid Files.ReadWrite.All'], - 'redirect_uri': base_url + '/onedrive/authentication', - 'prompt': 'consent', - 'access_type': 'offline' - }) - return { - 'type': 'ir.actions.act_url', - 'target': 'self', - 'url': "%s?%s" % (authority, encoded_params), - } + res = requests.post( + f"https://login.microsoftonline.com/consumers/oauth2/v2.0/token", + data=data, + headers={"content-type": "application/x-www-form-urlencoded"}) + response = res.content and res.json() or {} + + if 'error' in response: + raise UserError(_("Error '%s': Please check the credentials.", + response['error'])) + + + authority = f'https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/authorize' + action = self.env["ir.actions.client"].sudo()._for_xml_id( + "onedrive_integration_odoo.onedrive_dashboard_action") + base_url = request.env['ir.config_parameter'].get_param( + 'web.base.url') + url_return = base_url + '/web#id=%d&action=%d&view_type=form&model=%s' \ + % (self.id, action['id'], 'onedrive.dashboard') + encoded_params = urls.url_encode({ + 'response_type': 'code', + 'client_id': self.env['ir.config_parameter'].get_param( + 'onedrive_integration_odoo.client_id', ''), + 'state': json.dumps({ + 'onedrive_config_id': self.id, + 'url_return': url_return + }), + 'scope': ['offline_access openid Files.ReadWrite.All'], + 'redirect_uri': base_url + '/onedrive/authentication', + 'prompt': 'consent', + 'access_type': 'offline' + }) + return { + 'type': 'ir.actions.act_url', + 'target': 'self', + 'url': "%s?%s" % (authority, encoded_params), + }