<?xml version="1.0" encoding="UTF-8" ?>
<rdf:RDF xmlns="http://usefulinc.com/ns/doap#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><Project><name>megrok.strictrequire</name>
<shortdesc>Checks that all Grokked components require a permission.</shortdesc>
<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::

    &lt;configure xmlns="http://namespaces.zope.org/zope"
               xmlns:grok="http://namespaces.zope.org/grok"&gt;
      &lt;include package="grok" /&gt;

      &lt;!-- include this package before mgrok.strictrequire is included --&gt;
      &lt;include package="package_with_unprotected_views" /&gt;

      &lt;!-- includeDependencies will include megrok.strictrequire --&gt;
      &lt;includeDependencies package="." /&gt;
      &lt;grok:grok package="." /&gt;
    &lt;/configure&gt;


Changelog of megrok.strictrequire
=================================

0.2 (2009-06-22)
----------------

- Check ViewletManager and Viewlet components too.

0.1 (2009-06-18)
----------------

- Initial release.</description>
<homepage rdf:resource="http://www.thehealthagency.com" />
<maintainer><foaf:Person><foaf:name>The Health Agency</foaf:name>
<foaf:mbox_sha1sum>80f3bc1c3cb553b1df2a44878c632f6a91a5a10e</foaf:mbox_sha1sum></foaf:Person></maintainer>
<release><Version><revision>0.2</revision></Version></release>
</Project></rdf:RDF>