Delete existing log-in information to force the user to log in again

Otherwise they won't be able to sync material profiles.

Contributes to issue CURA-8609.
This commit is contained in:
Ghostkeeper 2021-10-18 13:17:22 +02:00
parent bf6dd443b2
commit 5ed57e403c
No known key found for this signature in database
GPG key ID: D2A8871EE34EC59A

View file

@ -3,6 +3,7 @@
import configparser
import io
import json
import os.path
from typing import List, Tuple
@ -49,6 +50,28 @@ class VersionUpgrade411to412(VersionUpgrade):
# Update version number.
parser["metadata"]["setting_version"] = "19"
# If the account scope in 4.11 is outdated, delete it so that the user is enforced to log in again and get the
# correct permissions.
new_scopes = {"account.user.read",
"drive.backup.read",
"drive.backup.write",
"packages.download",
"packages.rating.read",
"packages.rating.write",
"connect.cluster.read",
"connect.cluster.write",
"library.project.read",
"library.project.write",
"cura.printjob.read",
"cura.printjob.write",
"cura.mesh.read",
"cura.mesh.write",
"cura.material.write"}
if "ultimaker_auth_data" in parser["general"]:
ultimaker_auth_data = json.loads(parser["general"]["ultimaker_auth_data"])
if new_scopes - set(ultimaker_auth_data["scope"].split(" ")):
parser["general"]["ultimaker_auth_data"] = "{}"
result = io.StringIO()
parser.write(result)
return [filename], [result.getvalue()]