User.get_preferences must return a copy
preferences is stored in the cache but as it is a mutable object, we must return a copy to prevent cache corruption. issue3442 review1351002
This commit is contained in:
1 parent
ab6d672863
commit
75e02ba2de
1 file changed
+2
-2
+2
-2
@@ -342,13 +342,13 @@ class User(ModelSQL, ModelView):
|
||||
key = (Transaction().user, context_only)
|
||||
preferences = cls._get_preferences_cache.get(key)
|
||||
if preferences is not None:
|
||||
return preferences
|
||||
return preferences.copy()
|
||||
user = Transaction().user
|
||||
with Transaction().set_user(0):
|
||||
user = cls(user)
|
||||
preferences = cls._get_preferences(user, context_only=context_only)
|
||||
cls._get_preferences_cache.set(key, preferences)
|
||||
return preferences
|
||||
return preferences.copy()
|
||||
|
||||
@classmethod
|
||||
def set_preferences(cls, values, old_password=False):
|
||||
|
||||
Reference in new issue
Block a user