Apply bitmask to user scope

As discussed, this is a method to prevent leaking personally identifiable information through crash reports, while still keeping the useful information for the developers on how widely spread the crashes are.
This commit is contained in:
Ghostkeeper 2020-09-08 02:00:58 +02:00
parent 43969c8074
commit 59669f6bad
No known key found for this signature in database
GPG key ID: D2A8871EE34EC59A

View file

@ -250,7 +250,10 @@ class CrashHandler:
scope.set_context("plugins", self.data["plugins"])
scope.set_user({"id": str(uuid.getnode())})
user_id = uuid.getnode() # On all of Cura's supported platforms, this returns the MAC address which is pseudonymical information (!= anonymous).
user_id %= 2 ** 16 # So to make it anonymous, apply a bitmask selecting only the last 16 bits.
# This prevents it from being traceable to a specific user but still gives somewhat of an idea of whether it's just the same user hitting the same crash over and over again, or if it's widespread.
scope.set_user({"id": str(user_id)})
return group