mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-06-03 18:54:31 +08:00
Include organization id and type of enterprise plan in slice data
CURA-7717
This commit is contained in:
parent
602e09e8af
commit
ceda3e70bd
@ -1,11 +1,11 @@
|
||||
# Copyright (c) 2019 Ultimaker B.V.
|
||||
# Copyright (c) 2020 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
from datetime import datetime
|
||||
import json
|
||||
import random
|
||||
from hashlib import sha512
|
||||
from base64 import b64encode
|
||||
from typing import Optional
|
||||
from typing import Optional, Any, Dict, Tuple
|
||||
|
||||
import requests
|
||||
|
||||
@ -16,6 +16,7 @@ from cura.OAuth2.Models import AuthenticationResponse, UserProfile, OAuth2Settin
|
||||
catalog = i18nCatalog("cura")
|
||||
TOKEN_TIMESTAMP_FORMAT = "%Y-%m-%d %H:%M:%S"
|
||||
|
||||
|
||||
class AuthorizationHelpers:
|
||||
"""Class containing several helpers to deal with the authorization flow."""
|
||||
|
||||
@ -121,10 +122,12 @@ class AuthorizationHelpers:
|
||||
if not user_data or not isinstance(user_data, dict):
|
||||
Logger.log("w", "Could not parse user data from token: %s", user_data)
|
||||
return None
|
||||
enterprise_info = self.extractEnterpriseSubscriptionInformation(user_data)
|
||||
return UserProfile(
|
||||
user_id = user_data["user_id"],
|
||||
username = user_data["username"],
|
||||
profile_image_url = user_data.get("profile_image_url", "")
|
||||
profile_image_url = user_data.get("profile_image_url", ""),
|
||||
**enterprise_info
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
@ -147,3 +150,22 @@ class AuthorizationHelpers:
|
||||
|
||||
encoded = sha512(verification_code.encode()).digest()
|
||||
return b64encode(encoded, altchars = b"_-").decode()
|
||||
|
||||
@staticmethod
|
||||
def extractEnterpriseSubscriptionInformation(user_data: Dict[str, Any]) -> Dict[str, Any]:
|
||||
"""
|
||||
Extracts information related to the enterprise subscription of the account.
|
||||
|
||||
:param user_data: Dictionary containing the unencoded user_data received by the JWT
|
||||
:returns: enterprise_info: Dictionary containing information related to enterprise subscriptions
|
||||
"""
|
||||
enterprise_info = {}
|
||||
subscriptions = user_data.get("subscriptions", [])
|
||||
enterprise_subscription = {}
|
||||
for subscription in subscriptions:
|
||||
if subscription.get("type_id", "") == "customer.enterprise":
|
||||
enterprise_subscription = subscription
|
||||
break
|
||||
enterprise_info["enterprise_plan"] = enterprise_subscription.get("plan_id", "")
|
||||
enterprise_info["organization_id"] = user_data.get("organization", {}).get("organization_id", "")
|
||||
return enterprise_info
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Copyright (c) 2019 Ultimaker B.V.
|
||||
# Copyright (c) 2020 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
from typing import Optional, Dict, Any
|
||||
|
||||
@ -27,6 +27,8 @@ class UserProfile(BaseModel):
|
||||
user_id = None # type: Optional[str]
|
||||
username = None # type: Optional[str]
|
||||
profile_image_url = None # type: Optional[str]
|
||||
enterprise_plan = None # type: Optional[str]
|
||||
organization_id = None # type: Optional[str]
|
||||
|
||||
|
||||
class AuthenticationResponse(BaseModel):
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Copyright (c) 2018 Ultimaker B.V.
|
||||
# Copyright (c) 2020 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import json
|
||||
@ -116,6 +116,7 @@ class SliceInfo(QObject, Extension):
|
||||
|
||||
machine_manager = self._application.getMachineManager()
|
||||
print_information = self._application.getPrintInformation()
|
||||
user_profile = self._application.getCuraAPI().account.userProfile
|
||||
|
||||
global_stack = machine_manager.activeMachine
|
||||
|
||||
@ -124,6 +125,8 @@ class SliceInfo(QObject, Extension):
|
||||
data["schema_version"] = 0
|
||||
data["cura_version"] = self._application.getVersion()
|
||||
data["cura_build_type"] = ApplicationMetadata.CuraBuildType
|
||||
data["enterprise_plan"] = user_profile.get("enterprise_plan", "") if user_profile else ""
|
||||
data["organization_id"] = user_profile.get("organization_id", "") if user_profile else ""
|
||||
|
||||
active_mode = self._application.getPreferences().getValue("cura/active_mode")
|
||||
if active_mode == 0:
|
||||
|
@ -6,7 +6,9 @@
|
||||
<b>Machine Type:</b> Ultimaker S5<br/>
|
||||
<b>Intent Profile:</b> Default<br/>
|
||||
<b>Quality Profile:</b> Fast<br/>
|
||||
<b>Using Custom Settings:</b> No
|
||||
<b>Using Custom Settings:</b> No<br/>
|
||||
<b>Enterprise Plan:</b> Essentials<br/>
|
||||
<b>Organization ID:</b> Ultimaker B.V.
|
||||
|
||||
<h3>Extruder 1:</h3>
|
||||
<ul>
|
||||
|
Loading…
x
Reference in New Issue
Block a user