[z3-checkins] r5469 - in z3/sqlos/trunk: . container interfaces
dreamcatcher at codespeak.net
dreamcatcher at codespeak.net
Wed Jul 7 02:04:20 MEST 2004
Author: dreamcatcher
Date: Wed Jul 7 02:04:19 2004
New Revision: 5469
Modified:
z3/sqlos/trunk/_sqlos.py
z3/sqlos/trunk/configure.zcml
z3/sqlos/trunk/container/__init__.py
z3/sqlos/trunk/interfaces/__init__.py
z3/sqlos/trunk/metaconfigure.py
Log:
Die getAdapter!
Modified: z3/sqlos/trunk/_sqlos.py
==============================================================================
--- z3/sqlos/trunk/_sqlos.py (original)
+++ z3/sqlos/trunk/_sqlos.py Wed Jul 7 02:04:19 2004
@@ -16,9 +16,6 @@
from sqlos.connection import ConnectionDescriptor
from sqlos.interfaces import ISQLObject, IISQLObject
-security_checker = ClassObjDescriptor('__Security_checker__')
-SQLObject.__Security_checker__ = security_checker
-
class SQLOS(SQLObject):
"""Subclass SQLObject to enable ``lazy updates`` by default,
as well as adding knowledge to register ``dirty`` objects
@@ -27,7 +24,6 @@
"""
implements(ISQLObject)
- __Security_checker__ = security_checker
_connection = ConnectionDescriptor()
_lazyUpdate = True
Modified: z3/sqlos/trunk/configure.zcml
==============================================================================
--- z3/sqlos/trunk/configure.zcml (original)
+++ z3/sqlos/trunk/configure.zcml Wed Jul 7 02:04:19 2004
@@ -144,6 +144,13 @@
/>
</class>
+ <class class="sqlobject.dbconnection.Iteration">
+ <require
+ permission="zope.Public"
+ interface=".interfaces.IIterator"
+ />
+ </class>
+
<!--
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
For now, you need to change the factory here if you want
Modified: z3/sqlos/trunk/container/__init__.py
==============================================================================
--- z3/sqlos/trunk/container/__init__.py (original)
+++ z3/sqlos/trunk/container/__init__.py Wed Jul 7 02:04:19 2004
@@ -133,7 +133,7 @@
super(SQLObjectAdding, self).__init__(context, request)
def add(self, content):
- container = zapi.getAdapter(self.context, IContainer)
+ container = IContainer(self.context)
klass = content.__class__
klass = removeAllProxies(klass)
className = klass.__name__
Modified: z3/sqlos/trunk/interfaces/__init__.py
==============================================================================
--- z3/sqlos/trunk/interfaces/__init__.py (original)
+++ z3/sqlos/trunk/interfaces/__init__.py Wed Jul 7 02:04:19 2004
@@ -293,8 +293,20 @@
class ISelectResults(Interface):
+ def __getitem__(item):
+ """ List Emulation """
+
def __iter__():
""" List Emulation """
def __len__():
""" List emulation """
+
+class IIterator(Interface):
+
+ def __iter__():
+ """ Iterator """
+
+ def next():
+ """ Iterator """
+
Modified: z3/sqlos/trunk/metaconfigure.py
==============================================================================
--- z3/sqlos/trunk/metaconfigure.py (original)
+++ z3/sqlos/trunk/metaconfigure.py Wed Jul 7 02:04:19 2004
@@ -14,8 +14,8 @@
from zope.interface import directlyProvides, implements
from zope.app.component.metaconfigure import factory, utility
from zope.app.component.metaconfigure import PublicPermission, proxify
+from zope.security.checker import defineChecker
from zope.security.checker import getCheckerForInstancesOf, MultiChecker
-from zope.security.proxy import Proxy
from zope.component.factory import Factory, IFactory
from sqlos.interfaces import IISQLObject
@@ -50,17 +50,17 @@
# <content> directive, so we create a Proxy using a checker
# with computed permission names.
# The permissions should probably be part of the directive.
- read_perm = '%s.View%s' % (package, component.__name__)
- change_perm = '%s.Change%s' % (package, component.__name__)
- checker = MultiChecker(((IReadSQLObjectClass, read_perm),
- (IWriteSQLObjectClass, change_perm),
- ))
-
- # XXX Seems like there's a bug on X30 that proxied
- # objects don't expose interfaces declared by means of
- # directlyProvides.
- # proxied = Proxy(component, checker)
- proxied = component
+
+ checker = getCheckerForInstancesOf(component)
+ if checker is None:
+ read_perm = '%s.View%s' % (package, component.__name__)
+ change_perm = '%s.Change%s' % (package, component.__name__)
+ checker = MultiChecker(((IReadSQLObjectClass, read_perm),
+ (IWriteSQLObjectClass, change_perm),
+ ))
+ defineChecker(component, checker)
+
+ proxied = proxify(component, checker)
# XXX We pass permission=None here so that the utility handler
# doesn't override what we've just did above.
More information about the z3-checkins
mailing list