Zope页面模板元数据未在Products中读取

时间:2013-02-12 18:55:32

标签: plone zope

我的应用程序在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>

1 个答案:

答案 0 :(得分:3)

.metadata个文件适用于皮肤对象。对于浏览器视图,您需要在视图的ZCML配置中指定权限:

<browser:page
    for="*"
    name="somepagename"
    template="pagetemplate.pt"
    permission="zope.View"
    />

您指定权限;上下文定义了哪些角色具有哪些权限。