From 73a62da8da1a24afc6c31a4d53e62ef1f5dd1b56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Tue, 30 Aug 2016 16:57:21 +0200 Subject: [PATCH] Fixed some issues with new db_user-returning credential check. --- blender_cloud/image_sharing.py | 2 +- blender_cloud/pillar.py | 9 ++++++--- blender_cloud/settings_sync.py | 2 +- blender_cloud/texture_browser.py | 4 ++-- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/blender_cloud/image_sharing.py b/blender_cloud/image_sharing.py index b8d21b3..3dba2cc 100644 --- a/blender_cloud/image_sharing.py +++ b/blender_cloud/image_sharing.py @@ -125,7 +125,7 @@ class PILLAR_OT_image_share(pillar.PillarOperatorMixin, self.report({'ERROR'}, 'Please subscribe to the Blender Cloud.') self._state = 'QUIT' return - except pillar.CredentialsNotSyncedError: + except pillar.UserNotLoggedInError: self.log.exception('Error checking/refreshing credentials.') self.report({'ERROR'}, 'Please log in on Blender ID first.') self._state = 'QUIT' diff --git a/blender_cloud/pillar.py b/blender_cloud/pillar.py index 17da5b7..1ee0c82 100644 --- a/blender_cloud/pillar.py +++ b/blender_cloud/pillar.py @@ -782,7 +782,8 @@ class PillarOperatorMixin: async def check_credentials(self, context, required_roles) -> bool: """Checks credentials with Pillar, and if ok returns the user document from Pillar/MongoDB. - Returns None if the user cannot be found, or if the user is not a Cloud subscriber. + :raises UserNotLoggedInError: if the user is not logged in + :raises NotSubscribedToCloudError: if the user does not have any of the required roles """ # self.report({'INFO'}, 'Checking Blender Cloud credentials') @@ -803,14 +804,16 @@ class PillarOperatorMixin: except NotSubscribedToCloudError: self._log_subscription_needed() raise + except CredentialsNotSyncedError: + self.log.info('Credentials not synced after refreshing, handling as not logged in.') + raise UserNotLoggedInError('Not logged in.') except UserNotLoggedInError: self.log.error('User not logged in on Blender ID.') + raise else: self.log.info('Credentials refreshed and ok.') return db_user - return None - def _log_subscription_needed(self): self.log.warning( 'Please subscribe to the blender cloud at https://cloud.blender.org/join') diff --git a/blender_cloud/settings_sync.py b/blender_cloud/settings_sync.py index 98fb365..15a9d9a 100644 --- a/blender_cloud/settings_sync.py +++ b/blender_cloud/settings_sync.py @@ -289,7 +289,7 @@ class PILLAR_OT_sync(pillar.PillarOperatorMixin, self.bss_report({'SUBSCRIBE'}, 'Please subscribe to the Blender Cloud.') self._state = 'QUIT' return - except pillar.CredentialsNotSyncedError: + except pillar.UserNotLoggedInError: self.log.exception('Error checking/refreshing credentials.') self.bss_report({'ERROR'}, 'Please log in on Blender ID first.') self._state = 'QUIT' diff --git a/blender_cloud/texture_browser.py b/blender_cloud/texture_browser.py index ef1cc1a..99fd60a 100644 --- a/blender_cloud/texture_browser.py +++ b/blender_cloud/texture_browser.py @@ -861,13 +861,13 @@ class PILLAR_OT_switch_hdri(pillar.PillarOperatorMixin, self.report({'ERROR'}, 'Please subscribe to the Blender Cloud.') self._state = 'QUIT' return - except pillar.CredentialsNotSyncedError: + except pillar.UserNotLoggedInError: self.log.exception('Error checking/refreshing credentials.') self.report({'ERROR'}, 'Please log in on Blender ID first.') self._state = 'QUIT' return - if user_id is None: + if not user_id: raise pillar.UserNotLoggedInError() await self.download_and_replace(context)