Skip to main content

Checks that all grokked "view-like" components require a permission.

Project description

megrok.strictrequire

What is megrok.strictrequire?

Strictrequire implements additional grokkers for the various view components in Grok. These grokkers determine whether the grok.require directive has been explicitly set on the view component (or on its baseclass).

It will raise an error (and thus prevent the startup of the application) if there’s a view component without an explicit use of the grok.require directive, providing a minimal safety net for finding unprotected views in your application.

Making use of megrok.strictrequire

To enable megrok.strictrequire simply list it as a requirement in your projects’s setup.py. Grok based applications that were bootstrapped with a recent version of the grokproject command will automatically include the megrok.strictrequire’s configure.zcml making the additional grokkers effective.

Caveat

If your applications triggers the registration of “third-party” views that do not themselves specifically use the grok.require directive, your application will not start.

If you decide you still want to make use of the third-aprty views you should make sure the inclusion of the configure.zcml of megrok.strictrequire comes after the inclusion of the third-party package by tweaking your applications’s configure.zcml. For example:

<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>

Changelog of megrok.strictrequire

5.0 (2024-03-22)

  • Drop support for explicit (pkg_resources) namespaces and replace it with an implicit (PEP 420) namespace.

4.0 (2024-01-25)

  • Drop support for Python 2.7, 3.4, 3.5, 3.6.

  • Drop support for grok < 5, thus dropping support for JSON, REST and XMLRPC.

  • Add support for Python 3.7, 3.8, 3.9, 3.10, 3.11, 3.12.

3.0.0 (2018-01-17)

  • Python 3 compatibility.

0.7 (2018-01-10)

  • Dependencies update in preparation of Python2/3 migration.

0.6 (2013-10-16)

  • Add grokker for grok.Page components.

0.5 (2011-07-19)

  • Reflect recent changes in grok 1.8.

0.4 (2011-07-11)

  • Use the groktoolkit versions.

  • Don’t check the requirement directive for ViewletManager, as these are not exposed as views.

0.3 (2010-05-18)

  • Test-requirements have been fixed. They formally include zope.app.testing for the moment.

0.2 (2009-06-22)

  • Check ViewletManager and Viewlet components too.

0.1 (2009-06-18)

  • Initial release.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

megrok.strictrequire-5.0.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

megrok.strictrequire-5.0-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

File details

Details for the file megrok.strictrequire-5.0.tar.gz.

File metadata

  • Download URL: megrok.strictrequire-5.0.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for megrok.strictrequire-5.0.tar.gz
Algorithm Hash digest
SHA256 3cc5d0a73106f6eb77915cb630a7a0cf4c4fed6d2ee9e6cc97fbfa36fca4a848
MD5 2fad84acbc4c31f9ce97a3bbad5a8f30
BLAKE2b-256 a3a3c5160aa2c3b420c81b6d963c779f7abaaa68a4174a002db826af7475eebb

See more details on using hashes here.

File details

Details for the file megrok.strictrequire-5.0-py3-none-any.whl.

File metadata

File hashes

Hashes for megrok.strictrequire-5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3e12fef2ab78647f5a7a21cd9c18941a2b8881aaf03125e22055b70b2091fcad
MD5 ef4583a804353fde7e4fccfb63da7e4e
BLAKE2b-256 4ff826e12b60bb024438c0b7ca7c996dde329c212924ce78818d03a95323e7f4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page