跳转到主要内容

保护未激活的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 一起运行。

更改日志

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 (10.6 kB 查看哈希)

上传时间

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面