session bug fix: make sure session package data always references current session data object as parent
This commit is contained in:
parent
9601a5e402
commit
1d33e55915
1 changed files with 11 additions and 1 deletions
|
@ -42,7 +42,9 @@ class SessionDataContainer(object):
|
||||||
|
|
||||||
def __getitem__(self, key):
|
def __getitem__(self, key):
|
||||||
client = component.getUtility(IMemcachedClient)
|
client = component.getUtility(IMemcachedClient)
|
||||||
return client.query(key, ns=self.namespace)
|
value = client.query(key, ns=self.namespace)
|
||||||
|
value.parent = self
|
||||||
|
return value
|
||||||
|
|
||||||
def __setitem__(self, key, value):
|
def __setitem__(self, key, value):
|
||||||
client = component.getUtility(IMemcachedClient)
|
client = component.getUtility(IMemcachedClient)
|
||||||
|
@ -85,6 +87,12 @@ class SessionData(dict):
|
||||||
self.id = id
|
self.id = id
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
|
|
||||||
|
def __getitem__(self, key):
|
||||||
|
value = super(SessionData, self).__getitem__(key)
|
||||||
|
if isinstance(value, SessionPkgData):
|
||||||
|
value.parent = self
|
||||||
|
return value
|
||||||
|
|
||||||
def __setitem__(self, key, value):
|
def __setitem__(self, key, value):
|
||||||
super(SessionData, self).__setitem__(key, value)
|
super(SessionData, self).__setitem__(key, value)
|
||||||
self.parent[self.id] = self
|
self.parent[self.id] = self
|
||||||
|
@ -105,3 +113,5 @@ class SessionPkgData(SessionData):
|
||||||
|
|
||||||
implements(ISessionPkgData)
|
implements(ISessionPkgData)
|
||||||
|
|
||||||
|
def __getitem__(self, key):
|
||||||
|
return super(SessionPkgData, self).__getitem__(key)
|
||||||
|
|
Loading…
Add table
Reference in a new issue