From 54de4095ae4a3a0adeb437ed787b7cff34063399 Mon Sep 17 00:00:00 2001 From: Denis Ledoux Date: Wed, 24 Jul 2013 15:05:34 +0200 Subject: [PATCH] [FIX]google_drive, google_spreadsheet: go to configuration panel only for group settings, spreadsheet attached to model without res_id bzr revid: dle@openerp.com-20130724130534-axyvc0u0g1um07fg --- addons/google_drive/google_drive.py | 16 +++++++++++----- addons/google_spreadsheet/google_spreadsheet.py | 2 +- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/addons/google_drive/google_drive.py b/addons/google_drive/google_drive.py index 717c20007d4..f2b4979d8f8 100644 --- a/addons/google_drive/google_drive.py +++ b/addons/google_drive/google_drive.py @@ -60,8 +60,13 @@ class config(osv.osv): def get_access_token(self, cr, uid, scope=None, context=None): ir_config = self.pool['ir.config_parameter'] google_drive_refresh_token = ir_config.get_param(cr, SUPERUSER_ID, 'google_drive_refresh_token') + group_config = self.pool['ir.model.data'].get_object_reference(cr, uid, 'base', 'group_erp_manager')[1] + user = self.pool['res.users'].read(cr, uid, uid, "groups_id") if not google_drive_refresh_token: - raise self.pool.get('res.config.settings').get_config_warning(cr, _("You haven't configured 'Authorization Code' generated from google, Please generate and configure it in %(menu:base_setup.menu_general_configuration)s."), context=context) + if group_config in user['groups_id']: + raise self.pool.get('res.config.settings').get_config_warning(cr, _("You haven't configured 'Authorization Code' generated from google, Please generate and configure it in %(menu:base_setup.menu_general_configuration)s."), context=context) + else: + raise osv.except_osv(_('Error!'), _("Google Drive is not yet configured. Please contact your administrator.")) google_drive_client_id = ir_config.get_param(cr, SUPERUSER_ID, 'google_drive_client_id') google_drive_client_secret = ir_config.get_param(cr, SUPERUSER_ID, 'google_drive_client_secret') #For Getting New Access Token With help of old Refresh Token @@ -75,10 +80,11 @@ class config(osv.osv): try: req = urllib2.Request('https://accounts.google.com/o/oauth2/token', data, headers) content = urllib2.urlopen(req).read() - except urllib2.HTTPError as e: - print vars(e) - print e.read() - raise self.pool.get('res.config.settings').get_config_warning(cr, _("Something went wrong during the token generation. Please request again an authorization code in %(menu:base_setup.menu_general_configuration)s."), context=context) + except urllib2.HTTPError: + if group_config in user['groups_id']: + raise self.pool.get('res.config.settings').get_config_warning(cr, _("Something went wrong during the token generation. Please request again an authorization code in %(menu:base_setup.menu_general_configuration)s."), context=context) + else: + raise osv.except_osv(_('Error!'), _("Google Drive is not yet configured. Please contact your administrator.")) content = json.loads(content) return content.get('access_token') diff --git a/addons/google_spreadsheet/google_spreadsheet.py b/addons/google_spreadsheet/google_spreadsheet.py index bfc5d822817..62961ee9989 100644 --- a/addons/google_spreadsheet/google_spreadsheet.py +++ b/addons/google_spreadsheet/google_spreadsheet.py @@ -102,7 +102,7 @@ class config(osv.osv): raise config = self.browse(cr, uid, config_id, context=context) title = 'Spreadsheet %s' % model - res = self.copy_doc(cr, uid, config.id, config.google_drive_resource_id, title, 'google.drive.config', context=context) + res = self.copy_doc(cr, uid, False, config.google_drive_resource_id, title, model, context=context) mo = re.search("(key=|/d/)([A-Za-z0-9-_]+)", res['url']) if mo: