Browse Source

Mar 29 : [UPDT] Updated 'onedrive_integration_odoo'

pull/370/head
AjmalCybro 4 weeks ago
parent
commit
5123e9c57f
  1. 2
      onedrive_integration_odoo/__manifest__.py
  2. 7
      onedrive_integration_odoo/doc/RELEASE_NOTES.md
  3. 67
      onedrive_integration_odoo/models/res_config_settings.py

2
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

7
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
- Added modules field and changed view
#### 29.03.2025
#### Version 17.0.1.0.2
#### BUG FIX
- Added /consumers endpoint

67
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),
}

Loading…
Cancel
Save