[Zope-Checkins] CVS: Releases/Zope/lib/python/Products/PageTemplates - Expressions.py:1.24 ZopePageTemplate.py:1.26
Evan Simpson
evan@zope.com
Tue, 6 Nov 2001 15:13:56 -0500
Update of /cvs-repository/Releases/Zope/lib/python/Products/PageTemplates
In directory cvs.zope.org:/tmp/cvs-serv27101/Products/PageTemplates
Modified Files:
Expressions.py ZopePageTemplate.py
Log Message:
Make ZPT use Unauthorized, when it's available.
=== Releases/Zope/lib/python/Products/PageTemplates/Expressions.py 1.23 => 1.24 ===
if sys.modules.has_key('Zope'):
import AccessControl
- from AccessControl import getSecurityManager
+ from AccessControl import getSecurityManager, Unauthorized
if hasattr(AccessControl, 'full_read_guard'):
from ZRPythonExpr import PythonExpr, _SecureModuleImporter, \
call_with_ns
@@ -128,6 +128,10 @@
SecureModuleImporter = _SecureModuleImporter()
else:
from PythonExpr import getSecurityManager, PythonExpr
+ try:
+ from zExceptions import Unauthorized
+ except ImportError:
+ Unauthorized = "Unauthorized"
def call_with_ns(f, ns, arg=1):
if arg==2:
return f(None, ns)
@@ -206,7 +210,7 @@
except Undefined, e:
ob = e
except (AttributeError, KeyError, TypeError, IndexError,
- 'Unauthorized'), e:
+ Unauthorized), e:
ob = Undefined(self._s, sys.exc_info())
if self._name == 'exists':
@@ -311,7 +315,7 @@
# If the path starts with an empty string, go to the root first.
self = self.getPhysicalRoot()
if not securityManager.validateValue(self):
- raise 'Unauthorized', name
+ raise Unauthorized, name
i = 1
plen = len(path)
@@ -331,7 +335,7 @@
o = get(object, 'aq_parent', M)
if o is not M:
if not validate(object, object, name, o):
- raise 'Unauthorized', name
+ raise Unauthorized, name
object=o
continue
@@ -346,7 +350,7 @@
and get(object, name) == o):
container = object
if not validate(object, container, name, o):
- raise 'Unauthorized', name
+ raise Unauthorized, name
else:
o=get(object, name, M)
if o is not M:
@@ -356,14 +360,14 @@
name, validate2, validate)
else:
if not validate(object, object, name, o):
- raise 'Unauthorized', name
+ raise Unauthorized, name
else:
try:
o=object[name]
except (AttributeError, TypeError):
raise AttributeError, name
if not validate(object, object, name, o):
- raise 'Unauthorized', name
+ raise Unauthorized, name
object = o
return object
@@ -371,5 +375,5 @@
def validate2(orig, inst, name, v, real_validate):
if not real_validate(orig, inst, name, v):
- raise 'Unauthorized', name
+ raise Unauthorized, name
return 1
=== Releases/Zope/lib/python/Products/PageTemplates/ZopePageTemplate.py 1.25 => 1.26 ===
from Shared.DC.Scripts.Script import Script, BindingsUI
from Shared.DC.Scripts.Signature import FuncCode
-from AccessControl import getSecurityManager
+from AccessControl import getSecurityManager, Unauthorized
from OFS.History import Historical, html_diff
from OFS.Cache import Cacheable
from OFS.Traversable import Traversable
@@ -274,7 +274,8 @@
try:
result = self.pt_render(extra_context=bound_names)
except TALESError, err:
- if err.type == 'Unauthorized':
+ if (err.type == Unauthorized or
+ isinstance(err.type, Unauthorized)):
raise err.type, err.value, err.takeTraceback()
err.takeTraceback()
raise