Commit cd0f5591 authored by Jérome Perrin's avatar Jérome Perrin

use a request cache

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@32602 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 65f37cc5
...@@ -55,12 +55,17 @@ ...@@ -55,12 +55,17 @@
<key> <string>_body</string> </key> <key> <string>_body</string> </key>
<value> <string># Check for a permission on an object specified by a given path\n <value> <string># Check for a permission on an object specified by a given path\n
# for current user. Return true only if the user is allowed.\n # for current user. Return true only if the user is allowed.\n
portal = context.getPortalObject()\n cache = container.REQUEST.other\n
ob = portal.restrictedTraverse(path, None)\n try:\n
if ob is not None:\n return cache[(script.getId(), path, permission)]\n
if portal.portal_membership.checkPermission(permission, ob):\n except KeyError:\n
return 1\n allowed = False\n
return 0\n portal = context.getPortalObject()\n
ob = portal.restrictedTraverse(path, None)\n
if ob is not None:\n
allowed = portal.portal_membership.checkPermission(permission, ob)\n
cache[(script.getId(), path, permission)] = allowed\n
return allowed\n
</string> </value> </string> </value>
</item> </item>
<item> <item>
...@@ -100,10 +105,18 @@ return 0\n ...@@ -100,10 +105,18 @@ return 0\n
<string>path</string> <string>path</string>
<string>permission</string> <string>permission</string>
<string>_getattr_</string> <string>_getattr_</string>
<string>container</string>
<string>cache</string>
<string>_getitem_</string>
<string>script</string>
<string>KeyError</string>
<string>False</string>
<string>allowed</string>
<string>context</string> <string>context</string>
<string>portal</string> <string>portal</string>
<string>None</string> <string>None</string>
<string>ob</string> <string>ob</string>
<string>_write_</string>
</tuple> </tuple>
</value> </value>
</item> </item>
......
1474 1475
\ No newline at end of file \ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment