[Zope3-checkins] CVS: Zope3/src/zope/app - context.txt:1.4
Jim Fulton
jim@zope.com
Fri, 6 Jun 2003 11:06:42 -0400
Update of /cvs-repository/Zope3/src/zope/app
In directory cvs.zope.org:/tmp/cvs-serv23145
Modified Files:
context.txt
Log Message:
reformatted a bit.
=== Zope3/src/zope/app/context.txt 1.3 => 1.4 ===
--- Zope3/src/zope/app/context.txt:1.3 Fri Jun 6 10:42:25 2003
+++ Zope3/src/zope/app/context.txt Fri Jun 6 11:06:42 2003
@@ -171,63 +171,63 @@
What could we do instead?
- Reorder proxies, decorator outside the security proxy.
- We could somehow re-order the proxies around an object so that the decorator
- goes on the outside. This is awkward, as it breaks our invariant of putting
- the security proxy always on the outside. There are also efficiency issues
- if the interface-related descriptors are security-proxied.
+ We could somehow re-order the proxies around an object so that the decorator
+ goes on the outside. This is awkward, as it breaks our invariant of putting
+ the security proxy always on the outside. There are also efficiency issues
+ if the interface-related descriptors are security-proxied.
- Let's analyze this a bit further.
+ Let's analyze this a bit further.
- * Why do we have an invariant that security proxies always go on the
- outside? I'm not sure I know. I think it may be:
+ * Why do we have an invariant that security proxies always go on the
+ outside? I'm not sure I know. I think it may be:
- + Context methods and methods of ContextAware classes get rebound
- to wrapper. They don't generally expect to be bound to security
- proxies. In particular, it's common for context methods to rely
- on access to private data.
+ + Context methods and methods of ContextAware classes get rebound
+ to wrapper. They don't generally expect to be bound to security
+ proxies. In particular, it's common for context methods to rely
+ on access to private data.
- + Maybe it simplified wrapper manipulation. I *think* recent
- changes to basic proxy introspection make this a non issue.
+ + Maybe it simplified wrapper manipulation. I *think* recent
+ changes to basic proxy introspection make this a non issue.
- * Adapters commonly are put around proxied objects.
+ * Adapters commonly are put around proxied objects.
- I see decorators lying along a continuum from totally transparent
- proxies to adapters. Given, this, I'm not positive that we have
- such an invariant.
+ I see decorators lying along a continuum from totally transparent
+ proxies to adapters. Given, this, I'm not positive that we have
+ such an invariant.
- * It would be bad for interface descriptors to end up on the wrong
- side of security proxies. Security descriptors always need to
- be bound to objects wo security proxies.
+ * It would be bad for interface descriptors to end up on the wrong
+ side of security proxies. Security descriptors always need to
+ be bound to objects wo security proxies.
- Note that interface descriptors can deal with context wrappers
- now, but they would go faster if they didn't need to.
+ Note that interface descriptors can deal with context wrappers
+ now, but they would go faster if they didn't need to.
- If we didn't have the ContextAware mix-in, we wouldn't need to
- worry about effects on interface descriptors, because they
- wouldn't evey be magically converted to context descriptors.
+ If we didn't have the ContextAware mix-in, we wouldn't need to
+ worry about effects on interface descriptors, because they
+ wouldn't evey be magically converted to context descriptors.
- * Is there a helpful rule that's less general than "security
- proxies" always go on the outside?
+ * Is there a helpful rule that's less general than "security
+ proxies" always go on the outside?
- What protects rename should be what protects setObject.
- We could declare that rename is to be protected with whatever protects the
- 'setObject' operation on the proxied object.
- That makes the zcml more complex, and special for decorators.
- That also makes the checker to use for decorators more complex and special.
+ We could declare that rename is to be protected with whatever protects the
+ 'setObject' operation on the proxied object.
+ That makes the zcml more complex, and special for decorators.
+ That also makes the checker to use for decorators more complex and special.
- Rename gets proxied by magic in the decorator.
- We could declare that rename is a special "untrusted" method, and cause
- its 'self' argument to be bound not to the decorator instance, but to
- some special object that is like the original decorator, but which wraps
- a security-proxied object.
+ We could declare that rename is a special "untrusted" method, and cause
+ its 'self' argument to be bound not to the decorator instance, but to
+ some special object that is like the original decorator, but which wraps
+ a security-proxied object.
- Register decorators to classes rather than interfaces.
- Security declarations are made by class, not by interface, so it makes sense
- for a decorator that needs particular security declarations to be declared
- for a class, and not an interface.
- It is not possible, currently, to register an adapter for a class.
- If it is made possible to do this, adapters registered for classes would
- always trump those registered for interfaces.
+ Security declarations are made by class, not by interface, so it makes sense
+ for a decorator that needs particular security declarations to be declared
+ for a class, and not an interface.
+ It is not possible, currently, to register an adapter for a class.
+ If it is made possible to do this, adapters registered for classes would
+ always trump those registered for interfaces.
* ContextAware mix-in considered harmful