保护不活动的plone内容免受未经授权的访问。
ftw.protectinactive的Python项目详细描述
FTW.保护不活动
ftw.protectinactive保护非活动内容不受未经授权的访问。
plone提供了设置发布和过期日期的字段。 如果发布日期在未来或过期日期在过去,则内容将处于非活动状态。 此非活动状态确定内容是否应出现在网站上。
问题是此检查仅在目录上执行。
它适用于列表和使用目录查询的所有其他实例。 但它并不能保护内容不被直接通过url访问。 无论内容是否处于非活动状态,未经授权的用户都可以访问该内容。 这种行为是非常不礼貌的,往往会遇到不理解。
ftw.protectinactive是为保护非活动内容并提供预期行为而创建的。 它在IPubAfterTraversalhook中执行非活动内容的检查。 如果内容处于非活动状态,并且用户没有查看它的权限,ftw.protectinactive 引发异常
功能
- 检查内容是否处于非活动状态
- 支持原型和灵巧内容
- 尊重Access inactive portal content和Access future portal content权限(在站点根目录上)
- 可配置异常类型
安装
- 将ftw.protectinactive添加到构建配置:
[instance] eggs += ftw.protectinactive
- 安装通用导入配置文件
配置
可以在plone注册表中配置由ftw.protectinactive引发的异常。 默认情况下,它将引发Unauthorized异常然而,这证实了 内容的存在,这是一个潜在的不必要的信息披露。 为了避免这种情况,可以在注册表中将异常更改为NotFound异常。
安装本地开发环境
$ 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
兼容性
与Plone4.3.9一起运行。
链接
变更日志
1.0.2(2018-01-09)
- 改进遍历钩子以避免阻止授权用户查看 应该允许他们查看内容。[姆巴切特]
- 修复由于“ftw.testbrowser”中最近的更改而失败的测试[mbaechtell]
- 测试扑通声4.2。[mbaechtell]
- 至少需要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]