检查所有通过grokked的"视图-like"组件是否需要权限。
项目描述
megrok.strictrequire
什么是megrok.strictrequire?
Strictrequire实现了Grok中各种视图组件的额外grokkers。这些grokkers确定视图组件(或其基类)上是否明确设置了grok.require指令。
如果视图组件没有显式使用 grok.require 指令,将引发错误(从而阻止应用程序启动),这为在您的应用程序中找到未受保护的视图提供了最小的安全网。
使用 megrok.strictrequire
要启用 megrok.strictrequire,只需将其列在项目的 setup.py 文件中的需求列表中。使用最近版本的 grokproject 命令启动的基于 Grok 的应用程序将自动包含 megrok.strictrequire 的 configure.zcml,从而使额外的 grokkers 生效。
注意事项
如果您的应用程序触发“第三方”视图的注册,而这些视图本身没有特别使用 grok.require 指令,则您的应用程序将无法启动。
如果您仍然决定使用第三方视图,请确保通过调整应用程序的 configure.zcml 来确保 megrok.strictrequire 的 configure.zcml 包含在第三方包之后。例如
<configure xmlns="http://namespaces.zope.org/zope" xmlns:grok="http://namespaces.zope.org/grok"> <include package="grok" /> <!-- include this package before mgrok.strictrequire is included --> <include package="package_with_unprotected_views" /> <!-- includeDependencies will include megrok.strictrequire --> <includeDependencies package="." /> <grok:grok package="." /> </configure>
megrok.strictrequire 的更改日志
5.0 (2024-03-22)
取消对显式(pkg_resources)命名空间的支持,并替换为隐式(PEP 420)命名空间。
4.0 (2024-01-25)
取消对 Python 2.7、3.4、3.5、3.6 的支持。
取消对 grok < 5 的支持,因此取消对 JSON、REST 和 XMLRPC 的支持。
添加对 Python 3.7、3.8、3.9、3.10、3.11、3.12 的支持。
3.0.0 (2018-01-17)
Python 3 兼容性。
0.7 (2018-01-10)
在准备 Python2/3 迁移的同时更新依赖项。
0.6 (2013-10-16)
添加 grok.Page 组件的 grokker。
0.5 (2011-07-19)
反映 grok 1.8 的最新更改。
0.4 (2011-07-11)
使用 groktoolkit 版本。
不要检查 ViewletManager 的要求指令,因为这些不是作为视图公开的。
0.3 (2010-05-18)
已修复测试依赖项。它们目前正式包括 zope.app.testing。
0.2 (2009-06-22)
也要检查 ViewletManager 和 Viewlet 组件。
0.1 (2009-06-18)
初始发布。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。