From b4fe69028bc3ec0f962d2d3bb2dfbe4a0a12683e Mon Sep 17 00:00:00 2001 From: Nicolas Sebrecht Date: Sun, 14 Aug 2016 22:35:09 +0200 Subject: [PATCH] XOAUTH2: let the user call the evaluated functions in the configuration Don't pass the account name to the function returned by eval. This allows the user to define his own arguments. This fix the code according to the documentation provided in offlineimap.conf. Github-fix: https://github.com/OfflineIMAP/offlineimap/issues/372 Signed-off-by: Nicolas Sebrecht --- offlineimap/repository/IMAP.py | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/offlineimap/repository/IMAP.py b/offlineimap/repository/IMAP.py index 95724a6..c881709 100644 --- a/offlineimap/repository/IMAP.py +++ b/offlineimap/repository/IMAP.py @@ -309,36 +309,32 @@ class IMAPRepository(BaseRepository): refresh_token = self.getconf('oauth2_refresh_token', None) if refresh_token is None: refresh_token = self.localeval.eval( - self.getconf('oauth2_refresh_token_eval', - "lambda x: None") - )(self.account.getname()) + self.getconf('oauth2_refresh_token_eval', "lambda x: None") + ) return refresh_token def getoauth2_access_token(self): access_token = self.getconf('oauth2_access_token', None) if access_token is None: access_token = self.localeval.eval( - self.getconf('oauth2_access_token_eval', - "lambda x: None") - )(self.account.getname()) + self.getconf('oauth2_access_token_eval', "lambda x: None") + ) return access_token def getoauth2_client_id(self): client_id = self.getconf('oauth2_client_id', None) if client_id is None: client_id = self.localeval.eval( - self.getconf('oauth2_client_id_eval', - "lambda x: None") - )(self.account.getname()) + self.getconf('oauth2_client_id_eval', "lambda x: None") + ) return client_id def getoauth2_client_secret(self): client_secret = self.getconf('oauth2_client_secret', None) if client_secret is None: client_secret = self.localeval.eval( - self.getconf('oauth2_client_secret_eval', - "lambda x: None") - )(self.account.getname()) + self.getconf('oauth2_client_secret_eval', "lambda x: None") + ) return client_secret def getpreauthtunnel(self):