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