1

我在 Plone 4 中使用Products.Reflecto来镜像文件系统内容并为该内容提供细粒度的安全性(即授予特定组对选定文件夹的访问权限)

我知道 Reflecto 对象不是真正的 Plone 内容,但是 Reflecto 对象内的所有文件都有一个共享选项卡。它按预期工作,直到您重新索引反射器,此时设置仅应用于反射器对象。

例如:

  • Mkdir(在文件系统上)-p test/foo/bar/baz
  • 在文件系统上创建一个镜像“test”目录的反射器对象。
  • 与任何用户或组共享对 baz 的“查看”权限
  • 验证共享是否按预期工作
  • 重新索引“测试”
  • 请注意,用户或组现在对“foo”具有“查看”权限

奇怪的是,一旦您在子对象上配置共享,反射器对象就会具有相同的设置,但它们似乎被忽略了。也很好奇,如果您配置“实时”反射器共享根本不起作用。这是错误还是功能?尝试支持这个用例是否合理?即重新索引反射器并维护共享设置?

4

1 回答 1

1

我不认为这本来应该起作用。在任何情况下,我都不记得在开发 Reflecto 时涉及过用例。

不过,我已经很多年没有接触过这个产品了,我也只是看了一眼代码库来提醒自己。

我在您的测试用例中怀疑是在反射器对象上设置了共享信息(通过获取),但是正在重新索引 baz 的目录代理。如果您要重新索引反射器,共享设置将不再被忽略。

如果是这样,那么目录代理上共享选项卡的存在就是这里的真正错误。

于 2012-07-13T06:39:08.057 回答