保护未激活的plone内容免受未经授权的访问。
项目描述
ftw.protectinactive
ftw.protectinactive 用来保护未激活的内容免受未经授权的访问。
Plone 提供了设置发布和过期日期的字段。如果发布日期在未来或过期日期在过去的,内容就是未激活的。这个未激活的状态决定了内容是否应该出现在网站上。
问题是这个检查只在目录上执行。
它在列表和其他所有使用目录查询的实例中工作。但它不能保护内容免受直接通过URL访问。未经授权的用户可以访问内容,无论它是激活的还是未激活的。这种行为非常不直观,常常引起困惑。
ftw.protectinactive 是为了保护未激活的内容并实现预期的行为而创建的。它在 IPubAfterTraversal 钩子中检查未激活的内容。如果内容是未激活的并且用户没有查看权限,ftw.protectinactive 会引发异常。
功能
检查内容是否未激活
支持Dexterity内容
尊重 访问未激活门户内容 和 访问未来门户内容 权限(在站点根目录)
可配置异常类型
安装
将 ftw.protectinactive 添加到您的 buildout 配置中
[instance] eggs += ftw.protectinactive
安装通用导入配置文件。
配置
由 ftw.protectinactive 引起的异常可以在 Plone 注册表中进行配置。默认情况下,它将引发一个 Unauthorized 异常。然而,这确认了内容的存在,这可能是不希望的信息披露。为了避免这种情况,可以在注册表中将异常更改为 NotFound 异常。
此外,您还可以通过 Plone 注册表完全禁用钩子。
安装本地开发环境
$ git clone git@github.com:4teamwork/ftw.protectinactive.git
$ cd ftw.protectinactive
$ ln -s development.cfg buildout.cfg
$ python2.7 bootstrap.py
$ bin/buildout
$ bin/test
兼容性
与 Plone 5.1 一起运行。
链接
版权
本软件包的版权属于 4teamwork。
ftw.protectinactive 根据 GNU 通用公共许可证,版本 2 授权。
更改日志
2.1.0 (2021-03-08)
实现禁用钩子的选项。[mathias.leimgruber]
2.0.0 (2019-10-23)
删除 Plone 4.2 兼容性。[jone]
添加 Plone 5.1 支持。[tinagerber]
删除 archetypes 支持。[tinagerber]
1.0.2 (2018-01-09)
改进遍历钩子,以便不阻止有权查看内容的授权用户查看内容。[mbaechtold]
修复由于 "ftw.testbrowser" 的近期更改而导致测试失败的问题。[mbaechtold]
针对 Plone 4.2 进行测试。[mbaechtold]
至少需要 plone.api 1.4.11:请参阅 https://github.com/plone/plone.api/blob/1.4.11/docs/CHANGES.rst#1411-2016-01-08 [mathias.leimgruber]
在 setup.py 中更新了描述。[lknoepfel]
1.0.1 (2016-07-25)
指定所需的 plone.api 版本。[lknoepfel]
1.0.0 (2016-07-20)
初始实现和首次发布。[lknoepfel]
项目详情
ftw.protectinactive-2.1.0.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9824b0d6314b104a9565fea70e8171a24d5eb7aa0c7bf5a8be010e7ea016dcba |
|
MD5 | 21c3983df47ba371e068d53c4809f4cc |
|
BLAKE2b-256 | d2df64ba06d574e973e345c5cc281373420e023b000b018ceb1f78dd2031d603 |