我的应用程序在Zope 2.12.19和Python 2.6.5上运行。
在pagetemplate.pt
文件中定义了访问限制的页面模板文件pagetemplate.pt.metadata
。这些访问限制适用于除Zope Products之外的所有网页并正常工作。
.metadata
文件的内容如下:
[default]
title=
[security]
View=0:Authenticated,Manager,Owner,User
Access contents information=0:Authenticated,Manager,Owner,User
例如,有一个Zope产品列出了系统中的所有用户,并使用上面的页面模板。用户可以匿名访问此页面而无需登录,这意味着未读取元数据文件。
但要访问Products以外的任何其他页面,该应用程序会强制用户登录。
产品阅读.metadata
文件是否有问题?
仅供参考 - 我不使用ZODB ...而是所有(源代码)都在文件系统上。
configure.zcml
的内容低于。
<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:five="http://namespaces.zope.org/five"
xmlns:browser="http://namespaces.zope.org/browser"
i18n_domain="AMSPermissions">
<!-- the users manage page -->
<browser:page
for="OFS.interfaces.IFolder"
name="manage-users"
template="standard_template.pt"
class=".users.UsersView"
permission="zope2.View"
/>
<!-- permissions checker -->
<browser:page
for="OFS.interfaces.IFolder"
name="perm_check"
class=".permissions.PermissionsCheckerView"
permission="zope2.View"
allowed_interface=".interfaces.IPermissionsCheckerView"
/>
</configure>.
此外,以下是产品的示例代码。
<html metal:use-macro="context/standard_template/macros/page">
<metal:block fill-slot="heading">Users Overview</metal:block>
<metal:block fill-slot="body" tal:define="users view/get_users">
---------Some code--------
</metal:block>
</html>
答案 0 :(得分:3)
.metadata
个文件仅适用于皮肤对象。对于浏览器视图,您需要在视图的ZCML配置中指定权限:
<browser:page
for="*"
name="somepagename"
template="pagetemplate.pt"
permission="zope.View"
/>
您指定权限;上下文定义了哪些角色具有哪些权限。