[Checkins]
SVN: grok/branches/gotcha-configuration-actions/src/grok/
Use the same descriminators that zope.component.zcml uses in
its directive handlers.
Philipp von Weitershausen
philikon at philikon.de
Tue Oct 9 11:04:14 EDT 2007
Log message for revision 80744:
Use the same descriminators that zope.component.zcml uses in its directive handlers.
Don't check whether a permission has been registered until we're executing actions.
Changed:
U grok/branches/gotcha-configuration-actions/src/grok/meta.py
U grok/branches/gotcha-configuration-actions/src/grok/tests/security/multiple_require.py
U grok/branches/gotcha-configuration-actions/src/grok/util.py
-=-
Modified: grok/branches/gotcha-configuration-actions/src/grok/meta.py
===================================================================
--- grok/branches/gotcha-configuration-actions/src/grok/meta.py 2007-10-09 14:55:56 UTC (rev 80743)
+++ grok/branches/gotcha-configuration-actions/src/grok/meta.py 2007-10-09 15:04:13 UTC (rev 80744)
@@ -1,4 +1,4 @@
-##############################################################################
+ ##############################################################################
#
# Copyright (c) 2006-2007 Zope Corporation and Contributors.
# All Rights Reserved.
@@ -57,15 +57,11 @@
if provides is None:
util.check_implements_one(factory)
name = util.class_annotation(factory, 'grok.name', '')
+
config.action(
- discriminator=('grokadapter', adapter_context, provides, name),
+ discriminator=('adapter', adapter_context, provides, name),
callable=component.provideAdapter,
- args=(factory,),
- kw=dict(
- adapts=(adapter_context,),
- provides=provides,
- name=name
- )
+ args=(factory, (adapter_context,), provides, name),
)
return True
@@ -79,13 +75,9 @@
check_adapts(factory)
name = util.class_annotation(factory, 'grok.name', '')
config.action(
- discriminator=('grokmultiadapter', provides, name),
+ discriminator=('adapter', provides, name),
callable=component.provideAdapter,
- args=(factory,),
- kw=dict(
- provides=provides,
- name=name
- )
+ args=(factory, None, provides, name),
)
return True
@@ -99,13 +91,9 @@
util.check_implements_one(factory)
name = util.class_annotation(factory, 'grok.name', '')
config.action(
- discriminator=('grokglobalutility', provides, name),
+ discriminator=('utility', provides, name),
callable=component.provideUtility,
- args=(factory(),),
- kw=dict(
- provides=provides,
- name=name
- )
+ args=(factory(), provides, name),
)
return True
@@ -214,25 +202,19 @@
factory.__view_name__ = view_name
adapts = (view_context, view_layer)
config.action(
- discriminator=('grokview', adapts, view_name),
- callable=setupView,
- args=(factory,),
- kw=dict(
- provides=interface.Interface,
- adapts=adapts,
- name=view_name
- )
+ discriminator=('adapter', adapts, interface.Interface, view_name),
+ callable=component.provideAdapter,
+ args=(factory, adapts, interface.Interface, view_name),
)
-
- return True
-def setupView(factory, provides, adapts, name):
- component.provideAdapter(factory, provides=provides,
- adapts=adapts, name=name)
- # protect view, public by default
- default_permission = get_default_permission(factory)
- make_checker(factory, factory, default_permission)
+ permission = get_default_permission(factory)
+ config.action(
+ discriminator=('protectName', factory, '__call__'),
+ callable=make_checker,
+ args=(factory, factory, permission),
+ )
+ return True
class JSONGrokker(martian.ClassGrokker):
Modified: grok/branches/gotcha-configuration-actions/src/grok/tests/security/multiple_require.py
===================================================================
--- grok/branches/gotcha-configuration-actions/src/grok/tests/security/multiple_require.py 2007-10-09 14:55:56 UTC (rev 80743)
+++ grok/branches/gotcha-configuration-actions/src/grok/tests/security/multiple_require.py 2007-10-09 15:04:13 UTC (rev 80744)
@@ -4,8 +4,7 @@
>>> grok.tests.grok(__name__)
Traceback (most recent call last):
...
- ConfigurationExecutionError: martian.error.GrokError: grok.require was called multiple times in <class 'grok.tests.security.multiple_require.MultipleView'>. It may only be set once for a class.
- ...
+ GrokError: grok.require was called multiple times in <class 'grok.tests.security.multiple_require.MultipleView'>. It may only be set once for a class.
"""
import grok
Modified: grok/branches/gotcha-configuration-actions/src/grok/util.py
===================================================================
--- grok/branches/gotcha-configuration-actions/src/grok/util.py 2007-10-09 14:55:56 UTC (rev 80743)
+++ grok/branches/gotcha-configuration-actions/src/grok/util.py 2007-10-09 15:04:13 UTC (rev 80744)
@@ -72,7 +72,6 @@
% factory, factory)
result = permissions[0]
- check_permission(factory, result)
return result
def url(request, obj, name=None):
More information about the Checkins
mailing list