Plone 未在产品中读取Zope页面模板元数据
我的应用程序运行在Zope2.12.19和Python2.6.5上 有一个页面模板文件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
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。