Plone 未在产品中读取Zope页面模板元数据

Plone 未在产品中读取Zope页面模板元数据,plone,zope,Plone,Zope,我的应用程序运行在Zope2.12.19和Python2.6.5上 有一个页面模板文件pagetemplate.pt,在pagetemplate.pt.metadata文件中定义了访问限制。这些访问限制适用于所有网页,Zope产品中的网页除外 .metadata文件的内容如下: [default] title= [security] View=0:Authenticated,Manager,Owner,User Access contents information=0:Authenticat

我的应用程序运行在Zope2.12.19和Python2.6.5上

有一个页面模板文件
pagetemplate.pt
,在
pagetemplate.pt.metadata
文件中定义了访问限制。这些访问限制适用于所有网页,Zope产品中的网页除外

.metadata
文件的内容如下:

[default]
title=

[security]
View=0:Authenticated,Manager,Owner,User
Access contents information=0:Authenticated,Manager,Owner,User
例如,有一个Zope产品列出了系统中的所有用户,它使用上面的页面模板。用户无需登录即可匿名访问此页面,这意味着未读取元数据文件

但要访问产品之外的任何其他页面,应用程序会强制用户登录。 产品读取
.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>

用户概述
---------一些代码--------

。元数据
文件仅适用于蒙皮对象。对于浏览器视图,您需要在视图的ZCML配置中指定权限:

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


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

这些页面模板是在皮肤中定义的还是与浏览器视图一起使用(例如,在
configure.zcml
中定义的)?它们与浏览器视图一起使用。例如,configure.zcml中定义的list-users.pt访问页面模板文件。@Ravi:答案是故意的泛型;我正在回答您的.metadata文件被忽略的原因,并为您提供一个指针,指示如何处理浏览器视图的权限。这并不是针对您的具体情况的现成答案。@Ravi:您的应用程序所需的确切配置需要更多的解释;如果你有具体的问题来帮助你理解这些问题,请尝试自己解决,然后回到这里来。这很有意义。但是,您能告诉我,当使用ZODB而不是基于文件系统时,为什么会应用安全限制(我的意思是读取
.metadata
文件)。
configure.zcml
中也不包含模板属性,每当从浏览器直接访问任何产品时,它都会提示用户登录。@Ravi:您在这里谈论的是两种截然不同的系统;ZODB机器是基于CMF皮肤的(因此是内容管理框架包的一部分),它早于ZCA(Zope组件框架);后者定义视图、页面和适配器。@Ravi:您也可以在文件系统中定义皮肤元素,然后使用元数据文件。但是,如果您使用ZCA视图(实际上,您应该这样做),那么将应用不同的规则。根本没有咨询CMF。