r13667 - in MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk: docs src/archetypes/referencebrowserwidget src/archetypes/referencebrowserwidget/browser src/archetypes/referencebrowserwidget/skins/referencebrowser src/archetypes/referencebrowserwidget/tests

"Tom Gross" <[email protected]> Fri, 03 Jun 2011 12:15:56 +0000
Newsgroups gmane.comp.web.zope.plone.archetypes.cvs
Message-ID <[email protected]>
Author: tom_gross
Date: Fri Jun  3 12:15:56 2011
New Revision: 13667

Modified:
   MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/docs/CHANGES.txt
   MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/browser/view.py
   MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/interfaces.py
   MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/skins/referencebrowser/referencebrowser.pt
   MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/tests/test_product.py
Log:
moved checkPermission from widget template to helper


Modified: MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/docs/CHANGES.txt
==============================================================================
--- MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/docs/CHANGES.txt	(original)
+++ MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/docs/CHANGES.txt	Fri Jun  3 12:15:56 2011
@@ -4,6 +4,9 @@
 2.4.3 - Unreleased
 ------------------
 
+* moved checkPermission from widget template to helper
+  [tom_gross]
+
 2.4.2 - 2011-06-02
 ------------------
 

Modified: MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/browser/view.py
==============================================================================
--- MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/browser/view.py	(original)
+++ MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/browser/view.py	Fri Jun  3 12:15:56 2011
@@ -12,6 +12,13 @@
 
 from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
 from Products.Five import BrowserView
+
+try:
+    # Zope >= 2.13
+    from AccessControl.security import checkPermission
+except ImportError:
+    from Products.Five.security import checkPermission
+
 from Products.ZCTextIndex.ParseTree import ParseError
 
 from plone.app.form._named import named_template_adapter
@@ -92,6 +99,8 @@
         context = aq_inner(self.context)
         return urllib.quote('/'.join(context.getPhysicalPath()))
 
+    def canView(self, obj):
+        return checkPermission('zope2.View', obj)
 
 class QueryCatalogView(BrowserView):
 

Modified: MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/interfaces.py
==============================================================================
--- MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/interfaces.py	(original)
+++ MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/interfaces.py	Fri Jun  3 12:15:56 2011
@@ -38,3 +38,5 @@
       def getPortalPath():
           """ Return the path to the portal """
 
+      def canView(obj):
+          """ Check, if the logged in user has the view permission on `obj` """

Modified: MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/skins/referencebrowser/referencebrowser.pt
==============================================================================
--- MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/skins/referencebrowser/referencebrowser.pt	(original)
+++ MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/skins/referencebrowser/referencebrowser.pt	Fri Jun  3 12:15:56 2011
@@ -17,7 +17,6 @@
           helper nocall:here/refbrowserhelper;
           portal context/@@plone_portal_state/portal;
           portal_path        helper/getPortalPath;
-          checkPermission python: here.portal_membership.checkPermission;
           refs python:helper.getFieldRelations(field);"
           condition="refs">
 
@@ -25,7 +24,7 @@
                tal:condition="python: not field.multiValued and (can_view or not hide_inaccessible)"
                tal:define="obj python:refs[0];
                            obj_path python: '/'.join(obj.getPhysicalPath());
-                           can_view python: checkPermission('View', obj)">
+                           can_view python: helper.canView(obj)">
           <img src="#" alt="Image"
               tal:condition="python: obj.portal_type in image_portal_types"
               tal:attributes="src string:${obj/absolute_url}/$image_method"
@@ -58,7 +57,7 @@
             <tal:block
                 tal:define="
                     obj_path python: '/'.join(obj.getPhysicalPath());
-                    can_view python: checkPermission('View', obj)"
+                    can_view python: helper.canView(obj)"
                 tal:condition="python: can_view or not hide_inaccessible">
               <li>
                 <img tal:condition="python:obj.portal_type in image_portal_types"

Modified: MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/tests/test_product.py
==============================================================================
--- MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/tests/test_product.py	(original)
+++ MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/tests/test_product.py	Fri Jun  3 12:15:56 2011
@@ -501,6 +501,13 @@
         helper = ReferenceBrowserHelperView(DummyObject('/plone/foo'), TestRequest())
         self.failUnless(helper.getUidFromReference(DummyRef()) is _marker)
 
+    def test_canview(self):
+        makeContent(self.folder, portal_type='Document', id='doc1')
+        request = TestRequest()
+        helper = ReferenceBrowserHelperView(self.portal, request)
+        self.assertTrue(helper.canView(self.folder.doc1))
+        self.logout()
+        self.assertFalse(helper.canView(self.folder.doc1))
 
 class IntegrationTestCase(FunctionalTestCase):
     """ Browser/publish tests of referencebrowser widget

------------------------------------------------------------------------------
Simplify data backup and recovery for your virtual environment with vRanger.
Installation's a snap, and flexible recovery options mean your data is safe,
secure and there when you need it. Discover what all the cheering's about.
Get your free trial download today. 
http://p.sf.net/sfu/quest-dev2dev2