From 849e012756595e266be66d60c32beebbbe61beac Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 8 Apr 2020 13:08:12 +0200 Subject: [PATCH] Gracefully handle binding erorr for local OAUTH2 Server CURA-7346 --- cura/OAuth2/AuthorizationService.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/cura/OAuth2/AuthorizationService.py b/cura/OAuth2/AuthorizationService.py index 13e0e50373..17c3d156ab 100644 --- a/cura/OAuth2/AuthorizationService.py +++ b/cura/OAuth2/AuthorizationService.py @@ -166,11 +166,18 @@ class AuthorizationService: "code_challenge_method": "S512" }) + # Start a local web server to receive the callback URL on. + try: + self._server.start(verification_code, state) + except OSError: + Logger.logException("w", "Unable to create authorization request server") + Message(i18n_catalog.i18nc("@info", "Unable to start local OAUTH2 server. Check if another login atempt is still active."), + title=i18n_catalog.i18nc("@info:title", "Warning")).show() + return + # Open the authorization page in a new browser window. QDesktopServices.openUrl(QUrl("{}?{}".format(self._auth_url, query_string))) - # Start a local web server to receive the callback URL on. - self._server.start(verification_code, state) ## Callback method for the authentication flow. def _onAuthStateChanged(self, auth_response: AuthenticationResponse) -> None: