[Checkins] SVN: grok/trunk/src/grok/ Public can only be set True if
the site is a container.
Martijn Faassen
faassen at infrae.com
Sun Jan 7 11:11:48 EST 2007
Log message for revision 71777:
Public can only be set True if the site is a container.
Changed:
U grok/trunk/src/grok/ftests/utility/public.py
U grok/trunk/src/grok/meta.py
-=-
Modified: grok/trunk/src/grok/ftests/utility/public.py
===================================================================
--- grok/trunk/src/grok/ftests/utility/public.py 2007-01-07 16:01:23 UTC (rev 71776)
+++ grok/trunk/src/grok/ftests/utility/public.py 2007-01-07 16:11:48 UTC (rev 71777)
@@ -43,4 +43,3 @@
class Cave2(grok.Container, grok.Site):
grok.local_utility(Fireplace, public=False, name_in_container='fireplace')
-
Modified: grok/trunk/src/grok/meta.py
===================================================================
--- grok/trunk/src/grok/meta.py 2007-01-07 16:01:23 UTC (rev 71776)
+++ grok/trunk/src/grok/meta.py 2007-01-07 16:11:48 UTC (rev 71777)
@@ -10,6 +10,7 @@
from zope.security.permission import Permission
from zope.security.interfaces import IPermission
+from zope.app.container.interfaces import IContainer
from zope.app.publisher.xmlrpc import MethodPublisher
from zope.app.container.interfaces import INameChooser
@@ -308,6 +309,11 @@
return
for info in infos:
+ if info.public and not IContainer.implementedBy(factory):
+ raise GrokError(
+ "Cannot set public to True with grok.local_utility as "
+ "the site (%r) is not a container." %
+ factory, factory)
if info.provides is None:
provides = []
if util.check_subclass(info.factory, grok.LocalUtility):
More information about the Checkins
mailing list