0

当我尝试在我的项目中包含一个 permissions.zcml 时,configure.zcml 上有这一行

 <include package="Products.CMFCore" file="permissions.zcml"
       xmlns:zcml="http://namespaces.zope.org/zcml"
       zcml:condition="have plone-41" />

或者只是这一行

  <include package="Products.CMFCore"/ >

在处理 rolemap.xml 时,它无法加载并引发错误。

当我尝试包含文件时

<include file="permissions.zcml">

我明白了

ConfigurationError: ('Unknown directive', u'http://namespace.zope.org/zope', u'permission')

但是当我在 configure.zcml 中编写权限声明时,它会得到正确处理。我尝试了几个包含包语句。敏捷手册指出,使用 zope 2.12(使用 2.13)collective.autopermission 不再需要这项工作。

我能错过什么?

编辑我

我的权限.zcml

@Martijn Pieters:Zope 版本是:2.13.16

4

1 回答 1

0

我确实缺少命名空间和 AccessControl 的包含。这个 permissions.zcml 完成了这项工作。

<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:meta="http://namespaces.zope.org/meta"
xmlns:browser="http://namespaces.zope.org/browser"
xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
i18n_domain="dotted.name">

<includeDependencies package="." />
<include package="AccessControl" file="meta.zcml" />
<include package="Products.CMFCore" file="permissions.zcml"/>    

 </configure>
于 2012-10-01T08:35:30.907 回答