mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-13 23:16:06 +08:00
commit
a17d0a19a7
@ -40,6 +40,7 @@ class AuthorizationHelpers:
|
|||||||
"""
|
"""
|
||||||
data = {
|
data = {
|
||||||
"client_id": self._settings.CLIENT_ID if self._settings.CLIENT_ID is not None else "",
|
"client_id": self._settings.CLIENT_ID if self._settings.CLIENT_ID is not None else "",
|
||||||
|
"client_secret": self._settings.CLIENT_SECRET if self._settings.CLIENT_SECRET is not None else "",
|
||||||
"redirect_uri": self._settings.CALLBACK_URL if self._settings.CALLBACK_URL is not None else "",
|
"redirect_uri": self._settings.CALLBACK_URL if self._settings.CALLBACK_URL is not None else "",
|
||||||
"grant_type": "authorization_code",
|
"grant_type": "authorization_code",
|
||||||
"code": authorization_code,
|
"code": authorization_code,
|
||||||
@ -64,6 +65,7 @@ class AuthorizationHelpers:
|
|||||||
Logger.log("d", "Refreshing the access token for [%s]", self._settings.OAUTH_SERVER_URL)
|
Logger.log("d", "Refreshing the access token for [%s]", self._settings.OAUTH_SERVER_URL)
|
||||||
data = {
|
data = {
|
||||||
"client_id": self._settings.CLIENT_ID if self._settings.CLIENT_ID is not None else "",
|
"client_id": self._settings.CLIENT_ID if self._settings.CLIENT_ID is not None else "",
|
||||||
|
"client_secret": self._settings.CLIENT_SECRET if self._settings.CLIENT_SECRET is not None else "",
|
||||||
"redirect_uri": self._settings.CALLBACK_URL if self._settings.CALLBACK_URL is not None else "",
|
"redirect_uri": self._settings.CALLBACK_URL if self._settings.CALLBACK_URL is not None else "",
|
||||||
"grant_type": "refresh_token",
|
"grant_type": "refresh_token",
|
||||||
"refresh_token": refresh_token,
|
"refresh_token": refresh_token,
|
||||||
|
@ -31,20 +31,24 @@ class AuthorizationService:
|
|||||||
account information.
|
account information.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Emit signal when authentication is completed.
|
def __init__(self,
|
||||||
onAuthStateChanged = Signal()
|
settings: "OAuth2Settings",
|
||||||
|
preferences: Optional["Preferences"] = None,
|
||||||
|
callback_auth_data_retrieved: Callable[[], None] = None) -> None:
|
||||||
|
# Emit signal when authentication is completed.
|
||||||
|
self.onAuthStateChanged = Signal()
|
||||||
|
|
||||||
# Emit signal when authentication failed.
|
# Emit signal when authentication failed.
|
||||||
onAuthenticationError = Signal()
|
self.onAuthenticationError = Signal()
|
||||||
|
|
||||||
accessTokenChanged = Signal()
|
self.accessTokenChanged = Signal()
|
||||||
|
|
||||||
def __init__(self, settings: "OAuth2Settings", preferences: Optional["Preferences"] = None) -> None:
|
|
||||||
self._settings = settings
|
self._settings = settings
|
||||||
self._auth_helpers = AuthorizationHelpers(settings)
|
self._auth_helpers = AuthorizationHelpers(settings)
|
||||||
self._auth_url = "{}/authorize".format(self._settings.OAUTH_SERVER_URL)
|
self._auth_url = "{}/authorize".format(self._settings.OAUTH_SERVER_URL)
|
||||||
self._auth_data: Optional[AuthenticationResponse] = None
|
self._auth_data: Optional[AuthenticationResponse] = None
|
||||||
self._user_profile: Optional["UserProfile"] = None
|
self._user_profile: Optional["UserProfile"] = None
|
||||||
|
self._callback_auth_data_retrieved = self.getUserProfile if callback_auth_data_retrieved is None else callback_auth_data_retrieved
|
||||||
self._preferences = preferences
|
self._preferences = preferences
|
||||||
self._server = LocalAuthorizationServer(self._auth_helpers, self._onAuthStateChanged, daemon=True)
|
self._server = LocalAuthorizationServer(self._auth_helpers, self._onAuthStateChanged, daemon=True)
|
||||||
self._currently_refreshing_token = False # Whether we are currently in the process of refreshing auth. Don't make new requests while busy.
|
self._currently_refreshing_token = False # Whether we are currently in the process of refreshing auth. Don't make new requests while busy.
|
||||||
@ -294,7 +298,7 @@ class AuthorizationService:
|
|||||||
self._auth_data = auth_data
|
self._auth_data = auth_data
|
||||||
self._currently_refreshing_token = False
|
self._currently_refreshing_token = False
|
||||||
if auth_data:
|
if auth_data:
|
||||||
self.getUserProfile()
|
self._callback_auth_data_retrieved()
|
||||||
self._preferences.setValue(self._settings.AUTH_DATA_PREFERENCE_KEY, json.dumps(auth_data.dump()))
|
self._preferences.setValue(self._settings.AUTH_DATA_PREFERENCE_KEY, json.dumps(auth_data.dump()))
|
||||||
else:
|
else:
|
||||||
Logger.log("d", "Clearing the user profile")
|
Logger.log("d", "Clearing the user profile")
|
||||||
|
@ -16,6 +16,7 @@ class OAuth2Settings(BaseModel):
|
|||||||
CALLBACK_PORT = None # type: Optional[int]
|
CALLBACK_PORT = None # type: Optional[int]
|
||||||
OAUTH_SERVER_URL = None # type: Optional[str]
|
OAUTH_SERVER_URL = None # type: Optional[str]
|
||||||
CLIENT_ID = None # type: Optional[str]
|
CLIENT_ID = None # type: Optional[str]
|
||||||
|
CLIENT_SECRET = None # type: Optional[str]
|
||||||
CLIENT_SCOPES = None # type: Optional[str]
|
CLIENT_SCOPES = None # type: Optional[str]
|
||||||
CALLBACK_URL = None # type: Optional[str]
|
CALLBACK_URL = None # type: Optional[str]
|
||||||
AUTH_DATA_PREFERENCE_KEY = "" # type: str
|
AUTH_DATA_PREFERENCE_KEY = "" # type: str
|
||||||
|
Loading…
x
Reference in New Issue
Block a user