[Checkins] SVN: z3c.sessionwidget/trunk/src/z3c/sessionwidget/widget.py allow to set security proxied objects

Bernd Dorn bernd.dorn at fhv.at
Mon Oct 9 18:08:58 EDT 2006


Log message for revision 70594:
  allow to set security proxied objects

Changed:
  U   z3c.sessionwidget/trunk/src/z3c/sessionwidget/widget.py

-=-
Modified: z3c.sessionwidget/trunk/src/z3c/sessionwidget/widget.py
===================================================================
--- z3c.sessionwidget/trunk/src/z3c/sessionwidget/widget.py	2006-10-09 19:16:43 UTC (rev 70593)
+++ z3c.sessionwidget/trunk/src/z3c/sessionwidget/widget.py	2006-10-09 22:08:57 UTC (rev 70594)
@@ -26,6 +26,7 @@
 from z3c.sessionwidget import interfaces
 from zope.app.form.interfaces import WidgetInputError, MissingInputError
 from zope.schema.interfaces import ValidationError
+from zope.security.proxy import removeSecurityProxy
 
 SESSION_KEY = 'z3c.sessionwidget.SessionInputWidget'
 
@@ -42,7 +43,10 @@
     def setRenderedValue(self, value):
         """See zope.app.form.interfaces.IWidget"""
         if not self.session.get('changed', False):
-            self.session['data'] = value
+            # we need to remove the security proxy here to pickle the
+            # object
+            value = removeSecurityProxy(value)
+            self.session['data'] = value            
 
     def hidden(self):
         """See zope.app.form.browser.interfaces.IBrowserWidget"""



More information about the Checkins mailing list