[Checkins] SVN: megrok.kss/branches/0.2/ Port changes from trunk to bugfix branch.

Uli Fouquet uli at gnufix.de
Mon Dec 29 11:40:27 EST 2008


Log message for revision 94427:
  Port changes from trunk to bugfix branch.

Changed:
  U   megrok.kss/branches/0.2/CHANGES.txt
  U   megrok.kss/branches/0.2/buildout.cfg
  U   megrok.kss/branches/0.2/setup.py
  U   megrok.kss/branches/0.2/src/megrok/kss/components.py
  U   megrok.kss/branches/0.2/src/megrok/kss/tests/kss.py

-=-
Modified: megrok.kss/branches/0.2/CHANGES.txt
===================================================================
--- megrok.kss/branches/0.2/CHANGES.txt	2008-12-29 16:31:26 UTC (rev 94426)
+++ megrok.kss/branches/0.2/CHANGES.txt	2008-12-29 16:40:26 UTC (rev 94427)
@@ -3,6 +3,12 @@
 
     (name of developer listed in brackets)
 
+megrok.kss - 0.3 Released 2008-12-29
+
+    - Fixes for compatibility with security-patched grok versions
+      (0.14.1, 0.13.1, 0.12.2)
+      [ulif]
+
 megrok.kss - 0.2  Released 2008-08-18
 
     - Fixes for 0.13 compatibility

Modified: megrok.kss/branches/0.2/buildout.cfg
===================================================================
--- megrok.kss/branches/0.2/buildout.cfg	2008-12-29 16:31:26 UTC (rev 94426)
+++ megrok.kss/branches/0.2/buildout.cfg	2008-12-29 16:40:26 UTC (rev 94427)
@@ -2,7 +2,7 @@
 develop = .
 parts = test interpreter
 find-links = http://download.zope.org/distribution/
-extends = http://grok.zope.org/releaseinfo/grok-0.13.cfg
+extends = http://grok.zope.org/releaseinfo/grok-0.14.1.cfg
 versions = versions
 
 [interpreter]

Modified: megrok.kss/branches/0.2/setup.py
===================================================================
--- megrok.kss/branches/0.2/setup.py	2008-12-29 16:31:26 UTC (rev 94426)
+++ megrok.kss/branches/0.2/setup.py	2008-12-29 16:40:26 UTC (rev 94427)
@@ -2,7 +2,7 @@
 
 from setuptools import setup, find_packages
 
-version = '0.2'
+version = '0.2.1dev'
 
 
 def read(*rnames):
@@ -21,7 +21,7 @@
       keywords="",
       author="Godefroid Chapelle",
       author_email="gotcha at bubblenet.be",
-      url="",
+      url="http://pypi.python.org/pypi/megrok.kss",
       license="ZPL",
       package_dir={'': 'src'},
       namespace_packages=['megrok'],

Modified: megrok.kss/branches/0.2/src/megrok/kss/components.py
===================================================================
--- megrok.kss/branches/0.2/src/megrok/kss/components.py	2008-12-29 16:31:26 UTC (rev 94426)
+++ megrok.kss/branches/0.2/src/megrok/kss/components.py	2008-12-29 16:40:26 UTC (rev 94427)
@@ -1,11 +1,25 @@
+import grok
 from zope.publisher.publish import mapply
 from kss.core import KSSView
 
+class DummyModel(grok.Model):
+    """A dummy model.
 
-class KSS(KSSView):
+    This model is needed to have a context for the `KSS` view
+    below. Otherwise grokking would fail. As soon as grok provides
+    `IGrokSecurityView` we can get rid of this.
+    """
+    pass
+
+class KSS(KSSView, grok.View):
     """This is the default KSS action class that binds to a content object.
+
+    We also derive from `grok.View` to let our views pass by the Grok
+    security checks. We also get some nice bonus features by that.
     """
 
+    grok.context(DummyModel)
+    
     def __init__(self, context, request):
         self.view = context
         super(KSS, self).__init__(context, request)

Modified: megrok.kss/branches/0.2/src/megrok/kss/tests/kss.py
===================================================================
--- megrok.kss/branches/0.2/src/megrok/kss/tests/kss.py	2008-12-29 16:31:26 UTC (rev 94426)
+++ megrok.kss/branches/0.2/src/megrok/kss/tests/kss.py	2008-12-29 16:40:26 UTC (rev 94427)
@@ -21,6 +21,33 @@
   </commands>
   </kukit>
   <BLANKLINE>
+
+The KSS action can be called by non-authenticated users. We put our
+model into the ZODB to make it browsable::
+
+  >>> from zope.app.testing.functional import getRootFolder
+  >>> root = getRootFolder()
+  >>> root['model'] = mymodel
+
+Now we start the test-browser and try to access our action as
+non-authenticated users::
+  
+  >>> from zope.testbrowser.testing import Browser
+  >>> browser = Browser()
+  >>> browser.handleErrors = False
+  >>> browser.open('http://localhost/model/@@testview/@@getId')
+  >>> print browser.contents
+  <?xml version="1.0" ?>
+  <kukit xmlns="http://www.kukit.org/commands/1.1">
+  <commands>
+  <command selector="#click-me" name="replaceHTML"
+           selectorType="">
+      <param name="html"><![CDATA[Something silly!]]></param>
+      <param name="withKssSetup">True</param>
+  </command>
+  </commands>
+  </kukit>
+
 """
 
 import grok



More information about the Checkins mailing list