Commit eae72825 authored by Tres Seaver's avatar Tres Seaver

Branch for removing imports from the Globals module.

parents 92c8c0fa e133164e
......@@ -9,6 +9,11 @@ Zope Changes
Restructuring
- Replaced imports from the 'Globals' module throughout the
tree with imports from the actual modules; the 'Globals' module
was always intended to be an area for shared data, rather than
a "facade" for imports.
- Updated 'pytz' from '2007f' to '2008i'.
- Moved svn:externals for 'mechanize', 'ClientPath', and 'pytz' to
......
......@@ -17,8 +17,11 @@ import os
import string
from logging import getLogger
from Acquisition import aq_base, aq_parent, aq_inner, aq_acquire
from Acquisition import aq_acquire
from Acquisition import aq_base
from Acquisition import aq_inner
from Acquisition import aq_inContextOf
from Acquisition import aq_parent
from ExtensionClass import Base
from zope.interface import implements
......@@ -31,10 +34,11 @@ except ImportError:
_what_not_even_god_should_do = []
from AccessControl.SecurityManagement import getSecurityManager
from AccessControl import Unauthorized
from AccessControl.unauthorized import Unauthorized
from AccessControl.interfaces import ISecurityPolicy
from AccessControl.interfaces import ISecurityManager
from AccessControl.SimpleObjectPolicies import Containers, _noroles
from AccessControl.SimpleObjectPolicies import Containers
from AccessControl.SimpleObjectPolicies import _noroles
from AccessControl.ZopeGuards import guarded_getitem
LOG = getLogger('ImplPython')
......
......@@ -14,18 +14,25 @@
$Id$
"""
import urlparse
from Acquisition import aq_base
from Acquisition import aq_get
from Acquisition import aq_inner
from Acquisition import aq_parent
from App.special_dtml import DTMLFile
from App.class_init import default__class_init__ as InitializeClass
from ExtensionClass import Base
from zope.interface import implements
import Globals, urlparse, SpecialUsers, ExtensionClass
from Globals import InitializeClass
from AccessControl import ClassSecurityInfo
from AccessControl import getSecurityManager, Unauthorized
from AccessControl.interfaces import IOwned
from AccessControl.Permissions import view_management_screens
from AccessControl.Permissions import take_ownership
from Acquisition import aq_get, aq_parent, aq_base, aq_inner
from requestmethod import requestmethod
from zope.interface import implements
from interfaces import IOwned
from AccessControl.requestmethod import requestmethod
from AccessControl.SecurityInfo import ClassSecurityInfo
from AccessControl.SecurityManagement import getSecurityManager
from AccessControl import SpecialUsers as SU
from AccessControl.unauthorized import Unauthorized
UnownableOwner=[]
......@@ -36,7 +43,7 @@ def ownableFilter(self):
# Marker to use as a getattr default.
_mark=ownableFilter
class Owned(ExtensionClass.Base):
class Owned(Base):
implements(IOwned)
......@@ -51,7 +58,7 @@ class Owned(ExtensionClass.Base):
)
security.declareProtected(view_management_screens, 'manage_owner')
manage_owner=Globals.DTMLFile('dtml/owner', globals())
manage_owner = DTMLFile('dtml/owner', globals())
security.declareProtected(view_management_screens, 'owner_info')
def owner_info(self):
......@@ -97,10 +104,10 @@ class Owned(ExtensionClass.Base):
root=self.getPhysicalRoot()
udb=root.unrestrictedTraverse(udb, None)
if udb is None:
user = SpecialUsers.nobody
user = SU.nobody
else:
user = udb.getUserById(oid, None)
if user is None: user = SpecialUsers.nobody
if user is None: user = SU.nobody
return user
security.declarePrivate('getOwnerTuple')
......@@ -134,12 +141,12 @@ class Owned(ExtensionClass.Base):
udb = root.unrestrictedTraverse(udb_path, None)
if udb is None:
return SpecialUsers.nobody
return SU.nobody
user = udb.getUserById(oid, None)
if user is None:
return SpecialUsers.nobody
return SU.nobody
return user.__of__(udb)
......@@ -258,8 +265,7 @@ class Owned(ExtensionClass.Base):
else:
# Otherwise change the ownership
user=getSecurityManager().getUser()
if (SpecialUsers.emergency_user and
aq_base(user) is SpecialUsers.emergency_user):
if (SU.emergency_user and aq_base(user) is SU.emergency_user):
__creatable_by_emergency_user__=getattr(
self,'__creatable_by_emergency_user__', None)
if (__creatable_by_emergency_user__ is None or
......
......@@ -121,6 +121,7 @@ _registerdPermission=_registeredPermissions.has_key
def registerPermissions(permissions, defaultDefault=('Manager',)):
"""Register an __ac_permissions__ sequence.
"""
from App.class_init import ApplicationDefaultPermissions
for setting in permissions:
if _registerdPermission(setting[0]): continue
if len(setting)==2:
......@@ -133,6 +134,6 @@ def registerPermissions(permissions, defaultDefault=('Manager',)):
Products.__ac_permissions__=(
Products_permissions + ((perm, (), default),))
mangled=pname(perm) # get mangled permission name
if not hasattr(Globals.ApplicationDefaultPermissions, mangled):
setattr(Globals.ApplicationDefaultPermissions,
if not hasattr(ApplicationDefaultPermissions, mangled):
setattr(ApplicationDefaultPermissions,
mangled, default)
......@@ -21,15 +21,15 @@ $Id$
from cgi import escape
import ExtensionClass, Acquisition
from Globals import InitializeClass
from Acquisition import ImplicitAcquisitionWrapper
from App.class_init import default__class_init__ as InitializeClass
from ExtensionClass import Base
from zope.interface import implements
from interfaces import IPermissionMappingSupport
from Owned import UnownableOwner
from Permission import pname
from requestmethod import requestmethod
from AccessControl.interfaces import IPermissionMappingSupport
from AccessControl.Owned import UnownableOwner
from AccessControl.Permission import pname
from AccessControl.requestmethod import requestmethod
class RoleManager:
......@@ -125,7 +125,7 @@ def setPermissionMapping(name, obj, v):
if v: setattr(obj, name, pname(v))
elif obj.__dict__.has_key(name): delattr(obj, name)
class PM(ExtensionClass.Base):
class PM(Base):
_owner=UnownableOwner
_View_Permission='_View_Permission'
......@@ -144,23 +144,23 @@ def aqwrap(object, wrapper, parent):
r._ugh=wrapper, object, parent
return r
class Rewrapper(ExtensionClass.Base):
class Rewrapper(Base):
def __of__(self, parent):
w, m, p = self._ugh
return m.__of__(
Acquisition.ImplicitAcquisitionWrapper(
ImplicitAcquisitionWrapper(
w, parent))
def __getattr__(self, name):
w, m, parent = self._ugh
self=m.__of__(
Acquisition.ImplicitAcquisitionWrapper(
ImplicitAcquisitionWrapper(
w, parent))
return getattr(self, name)
def __call__(self, *args, **kw):
w, m, parent = self._ugh
self=m.__of__(
Acquisition.ImplicitAcquisitionWrapper(
ImplicitAcquisitionWrapper(
w, parent))
return apply(self, args, kw)
......@@ -16,20 +16,23 @@ $Id$
"""
from cgi import escape
from Globals import DTMLFile, MessageDialog, Dictionary
from Acquisition import Implicit, Acquired, aq_get
from Globals import InitializeClass
from Acquisition import Acquired
from Acquisition import aq_get
from Acquisition import aq_base
from Acquisition import Implicit
from AccessControl import ClassSecurityInfo
from AccessControl.SecurityManagement import newSecurityManager
from AccessControl.Permissions import change_permissions
import ExtensionClass, PermissionMapping, Products
from App.Common import aq_base
from App.class_init import default__class_init__ as InitializeClass
from App.Dialogs import MessageDialog
from App.special_dtml import DTMLFile
from ExtensionClass import Base
from PermissionMapping import RoleManager
from zope.interface import implements
from interfaces import IRoleManager
from Permission import Permission
from requestmethod import requestmethod
from AccessControl.interfaces import IRoleManager
from AccessControl.Permission import Permission
from AccessControl.requestmethod import requestmethod
DEFAULTMAXLISTUSERS=250
......@@ -40,7 +43,7 @@ def _isNotBeingUsedAsAMethod(self):
return not aq_get(self, '_isBeingUsedAsAMethod_', 0)
class RoleManager(ExtensionClass.Base, PermissionMapping.RoleManager):
class RoleManager(Base, RoleManager):
"""An object that has configurable permissions"""
......@@ -602,6 +605,7 @@ class RoleManager(ExtensionClass.Base, PermissionMapping.RoleManager):
pass
def possible_permissions(self):
import Products
d={}
Products_permissions = getattr(Products, '__ac_permissions__', ())
for p in Products_permissions:
......
......@@ -24,12 +24,16 @@ from Acquisition import aq_base
from Acquisition import aq_parent
from Acquisition import aq_inContextOf
from Acquisition import Implicit
from App.Management import Navigation, Tabs
from Globals import DTMLFile, MessageDialog, Persistent, PersistentMapping
from Globals import InitializeClass
from App.class_init import default__class_init__ as InitializeClass
from App.Management import Navigation
from App.Management import Tabs
from App.special_dtml import DTMLFile
from App.Dialogs import MessageDialog
from AccessControl import ClassSecurityInfo
from AccessControl.Permissions import manage_users as ManageUsers
from OFS.SimpleItem import Item
from Persistence import Persistent
from Persistence import PersistentMapping
from zExceptions import Unauthorized, BadRequest
from zope.interface import implements
......
......@@ -11,21 +11,26 @@
#
##############################################################################
from unauthorized import Unauthorized
# This has to happen early so things get initialized properly
from AccessControl.Implementation import setImplementation
from AccessControl.SecurityManagement import getSecurityManager, setSecurityPolicy
from AccessControl.SecurityInfo import ClassSecurityInfo, ModuleSecurityInfo
from AccessControl.SecurityManagement import getSecurityManager
from AccessControl.SecurityManagement import setSecurityPolicy
from AccessControl.SecurityInfo import ClassSecurityInfo
from AccessControl.SecurityInfo import ModuleSecurityInfo
from AccessControl.SecurityInfo import ACCESS_PRIVATE
from AccessControl.SecurityInfo import ACCESS_PUBLIC
from AccessControl.SecurityInfo import ACCESS_NONE
from AccessControl.SecurityInfo import secureModule, allow_module, allow_class
from AccessControl.SecurityInfo import secureModule
from AccessControl.SecurityInfo import allow_module
from AccessControl.SecurityInfo import allow_class
from AccessControl.SimpleObjectPolicies import allow_type
from AccessControl.ZopeGuards import full_write_guard, safe_builtins
from AccessControl.unauthorized import Unauthorized # XXX
from AccessControl.ZopeGuards import full_write_guard
from AccessControl.ZopeGuards import safe_builtins
ModuleSecurityInfo('AccessControl').declarePublic('getSecurityManager')
from AccessControl import DTML
from AccessControl import DTML # XXX side effects?
del DTML
......@@ -25,7 +25,7 @@ import Zope2
Zope2.startup()
from OFS.SimpleItem import SimpleItem
from Globals import InitializeClass
from App.class_init import default__class_init__ as InitializeClass
from AccessControl import ClassSecurityInfo
from AccessControl.SecurityManagement import newSecurityManager
from AccessControl.SecurityManagement import noSecurityManager
......
......@@ -21,7 +21,7 @@ import ZODB
import transaction
from Acquisition import Implicit
from AccessControl import ClassSecurityInfo
from Globals import InitializeClass
from App.class_init import default__class_init__ as InitializeClass
from OFS.ObjectManager import ObjectManager
from OFS.Folder import Folder
......
......@@ -28,7 +28,7 @@ class ClassSecurityInfoTests(unittest.TestCase):
# Test setting default roles for permissions.
import Globals # XXX: avoiding import cycle
#import Globals # XXX: avoiding import cycle
from App.class_init import default__class_init__
from ExtensionClass import Base
......
......@@ -585,7 +585,7 @@ class TestActualPython(GuardTestCase):
from AccessControl.SecurityInfo import ClassSecurityInfo
from ExtensionClass import Base
from Globals import InitializeClass
from App.class_init import default__class_init__ as InitializeClass
global _ProtectedBase
if _ProtectedBase is None:
......
......@@ -14,27 +14,33 @@ __doc__="""System management components"""
__version__='$Revision: 1.94 $'[11:-2]
import sys,os,time,Globals, Acquisition, os, Undo
from cgi import escape
from cStringIO import StringIO
from logging import getLogger
from Globals import InitializeClass
from Globals import DTMLFile
from OFS.ObjectManager import ObjectManager
from OFS.Folder import Folder
from CacheManager import CacheManager
from DavLockManager import DavLockManager
from DateTime.DateTime import DateTime
from OFS import SimpleItem
import os
import sys
import time
from AccessControl.requestmethod import requestmethod
from AccessControl.SecurityManagement import getSecurityManager
from Acquisition import Implicit
from App.CacheManager import CacheManager
from App.class_init import default__class_init__ as InitializeClass
from App.config import getConfiguration
from App.DavLockManager import DavLockManager
from App.Dialogs import MessageDialog
from App.special_dtml import DTMLFile
from App.Undo import UndoSupport
from App.version_txt import version_txt
from DateTime.DateTime import DateTime
from Lifetime import shutdown
from OFS.Folder import Folder
from OFS.ObjectManager import ObjectManager
from OFS.SimpleItem import Item
from OFS.SimpleItem import SimpleItem
from Product import ProductFolder
from version_txt import version_txt
from cStringIO import StringIO
from AccessControl import getSecurityManager
from AccessControl.requestmethod import requestmethod
from zExceptions import Redirect
from Products.PageTemplates.PageTemplateFile import PageTemplateFile
from cgi import escape
import Lifetime
from zExceptions import Redirect
LOG = getLogger('ApplicationManager')
......@@ -45,9 +51,9 @@ else: get_ident=thread.get_ident
class Fake:
def locked_in_version(self): return 0
class DatabaseManager(Fake, SimpleItem.Item, Acquisition.Implicit):
class DatabaseManager(Fake, Item, Implicit):
"""Database management (legacy) """
manage=manage_main=DTMLFile('dtml/dbMain', globals())
manage = manage_main = DTMLFile('dtml/dbMain', globals())
manage_main._setName('manage_main')
id ='DatabaseManagement'
name=title='Database Management'
......@@ -69,9 +75,9 @@ class DatabaseManager(Fake, SimpleItem.Item, Acquisition.Implicit):
# These need to be here rather to make tabs work correctly. This
# needs to be revisited.
manage_activity=Globals.DTMLFile('dtml/activity', globals())
manage_cacheParameters=Globals.DTMLFile('dtml/cacheParameters', globals())
manage_cacheGC=Globals.DTMLFile('dtml/cacheGC', globals())
manage_activity = DTMLFile('dtml/activity', globals())
manage_cacheParameters = DTMLFile('dtml/cacheParameters', globals())
manage_cacheGC = DTMLFile('dtml/cacheGC', globals())
InitializeClass(DatabaseManager)
......@@ -89,7 +95,7 @@ class FakeConnection:
def getVersion(self):
return self.version
class DatabaseChooser (SimpleItem.SimpleItem):
class DatabaseChooser(SimpleItem):
"""Lets you choose which database to view
"""
meta_type = 'Database Management'
......@@ -140,9 +146,9 @@ class DatabaseChooser (SimpleItem.SimpleItem):
InitializeClass(DatabaseChooser)
class VersionManager(Fake, SimpleItem.Item, Acquisition.Implicit):
class VersionManager(Fake, Item, Implicit):
"""Version management"""
manage=manage_main=DTMLFile('dtml/versionManager', globals())
manage=manage_main = DTMLFile('dtml/versionManager', globals())
manage_main._setName('manage_main')
id ='Versions'
name=title='Version Management'
......@@ -165,9 +171,9 @@ InitializeClass(VersionManager)
_v_rcs=None
_v_rst=None
class DebugManager(Fake, SimpleItem.Item, Acquisition.Implicit):
class DebugManager(Fake, Item, Implicit):
"""Debug and profiling information"""
manage=manage_main=DTMLFile('dtml/debug', globals())
manage=manage_main = DTMLFile('dtml/debug', globals())
manage_main._setName('manage_main')
id ='DebugInfo'
name=title='Debug Information'
......@@ -182,9 +188,9 @@ class DebugManager(Fake, SimpleItem.Item, Acquisition.Implicit):
)
)
manage_debug=DTMLFile('dtml/debug', globals())
manage_debug = DTMLFile('dtml/debug', globals())
def refcount(self, n=None, t=(type(Fake), type(Acquisition.Implicit))):
def refcount(self, n=None, t=(type(Fake), type(Implicit))):
# return class reference info
dict={}
for m in sys.modules.values():
......@@ -241,12 +247,13 @@ class DebugManager(Fake, SimpleItem.Item, Acquisition.Implicit):
'rc': n[1][0]}, rd)
def dbconnections(self):
import Globals
return Globals.DB.connectionDebugInfo()
# Profiling support
manage_profile=DTMLFile('dtml/profile', globals())
manage_profile = DTMLFile('dtml/profile', globals())
def manage_profile_stats(self, sort='time', limit=200, stripDirs=1, mode='stats'):
"""Return profile data if available"""
......@@ -283,7 +290,7 @@ class ApplicationManager(Folder,CacheManager):
DebugInfo=DebugManager()
DavLocks = DavLockManager()
manage=manage_main=DTMLFile('dtml/cpContents', globals())
manage=manage_main = DTMLFile('dtml/cpContents', globals())
manage_main._setName('manage_main')
def version_txt(self):
......@@ -309,11 +316,9 @@ class ApplicationManager(Folder,CacheManager):
)
manage_options=(
(
{'label':'Contents', 'action':'manage_main',
'help':('OFSP','Control-Panel_Contents.stx')},
)
+Undo.UndoSupport.manage_options
({'label':'Contents', 'action':'manage_main',
'help':('OFSP','Control-Panel_Contents.stx')},
) + UndoSupport.manage_options
)
id ='Control_Panel'
......@@ -397,8 +402,7 @@ class ApplicationManager(Folder,CacheManager):
except:
user = 'unknown user'
LOG.info("Restart requested by %s" % user)
#for db in Globals.opened: db.close()
Lifetime.shutdown(1)
shutdown(1)
return """<html>
<head><meta HTTP-EQUIV=REFRESH CONTENT="10; URL=%s/manage_main">
</head>
......@@ -413,8 +417,7 @@ class ApplicationManager(Folder,CacheManager):
except:
user = 'unknown user'
LOG.info("Shutdown requested by %s" % user)
#for db in Globals.opened: db.close()
Lifetime.shutdown(0)
shutdown(0)
return """<html>
<head>
</head>
......
......@@ -19,9 +19,10 @@ __version__='$Revision: 1.31 $'[11:-2]
import time
import Globals
from Globals import InitializeClass
from DateTime import DateTime
from App.class_init import default__class_init__ as InitializeClass
from App.special_dtml import DTMLFile
from App.ImageFile import ImageFile
from DateTime.DateTime import DateTime
class CacheManager:
"""Cache management mix-in
......@@ -30,13 +31,12 @@ class CacheManager:
_vcache_age = 60
_history_length = 3600 # Seconds
manage_cacheParameters = Globals.DTMLFile('dtml/cacheParameters',
globals())
manage_cacheGC = Globals.DTMLFile('dtml/cacheGC', globals())
manage_cacheParameters = DTMLFile('dtml/cacheParameters', globals())
manage_cacheGC = DTMLFile('dtml/cacheGC', globals())
transparent_bar = Globals.ImageFile('www/transparent_bar.gif', globals())
store_bar = Globals.ImageFile('www/store_bar.gif', globals())
load_bar = Globals.ImageFile('www/load_bar.gif', globals())
transparent_bar = ImageFile('www/transparent_bar.gif', globals())
store_bar = ImageFile('www/store_bar.gif', globals())
load_bar = ImageFile('www/load_bar.gif', globals())
def _getDB(self):
return self._p_jar.db()
......@@ -95,18 +95,22 @@ class CacheManager:
# BoboPOS 2
def cache_mean_age(self):
import Globals
return Globals.Bobobase._jar.cache.cache_mean_age/60.0
# BoboPOS 2
def cache_mean_deal(self):
import Globals
return Globals.Bobobase._jar.cache.cache_mean_deal*60
# BoboPOS 2
def cache_mean_deac(self):
import Globals
return Globals.Bobobase._jar.cache.cache_mean_deac*60
# BoboPOS 2
def cache_last_gc_time(self):
import Globals
t=Globals.Bobobase._jar.cache.cache_last_gc_time
return time.asctime(time.localtime(t))
......
......@@ -13,15 +13,19 @@
__version__ = "$Revision: 1.8 $"[11:-2]
import OFS, Acquisition, Globals
from Globals import InitializeClass
from AccessControl import getSecurityManager, ClassSecurityInfo
from AccessControl.SecurityInfo import ClassSecurityInfo
from AccessControl.SecurityManagement import getSecurityManager
from Acquisition import aq_base
from Acquisition import Implicit
from App.class_init import default__class_init__ as InitializeClass
from App.special_dtml import DTMLFile
from OFS.SimpleItem import Item
from webdav.Lockable import wl_isLocked
class DavLockManager(OFS.SimpleItem.Item, Acquisition.Implicit):
id = 'DavLockManager'
class DavLockManager(Item, Implicit):
id = 'DavLockManager'
name = title = 'WebDAV Lock Manager'
meta_type = 'WebDAV Lock Manager'
meta_type = 'WebDAV Lock Manager'
icon = 'p_/davlocked'
security = ClassSecurityInfo()
......@@ -30,7 +34,7 @@ class DavLockManager(OFS.SimpleItem.Item, Acquisition.Implicit):
'manage_unlockObjects')
security.declarePrivate('unlockObjects')
manage_davlocks=manage_main=manage=Globals.DTMLFile(
manage_davlocks = manage_main = manage = DTMLFile(
'dtml/davLockManager', globals())
manage_davlocks._setName('manage_davlocks')
......@@ -78,7 +82,7 @@ class DavLockManager(OFS.SimpleItem.Item, Acquisition.Implicit):
if result is None:
result = []
base = Acquisition.aq_base(obj)
base = aq_base(obj)
if not hasattr(base, 'objectItems'):
return result
try: items = obj.objectItems()
......@@ -90,7 +94,7 @@ class DavLockManager(OFS.SimpleItem.Item, Acquisition.Implicit):
else: p = id
dflag = hasattr(ob, '_p_changed') and (ob._p_changed == None)
bs = Acquisition.aq_base(ob)
bs = aq_base(ob)
if wl_isLocked(ob):
li = []
addlockinfo = li.append
......
......@@ -33,8 +33,7 @@
__version__='$Revision: 1.9 $'[11:-2]
from Globals import HTML
from App.special_dtml import HTML
MessageDialog = HTML("""
<HTML>
......
......@@ -15,34 +15,41 @@ __doc__='''Factory objects
$Id$'''
__version__='$Revision: 1.27 $'[11:-2]
import OFS.SimpleItem, Acquisition, Globals, AccessControl.Role
from Globals import InitializeClass
from AccessControl import ClassSecurityInfo
from AccessControl.Permissions import edit_factories
from AccessControl.Permissions import use_factories
class Factory(
AccessControl.Role.RoleManager,
Globals.Persistent, Acquisition.Implicit, OFS.SimpleItem.Item
):
"Model factory meta-data"
meta_type='Zope Factory'
icon='p_/Factory_icon'
from AccessControl.Role import RoleManager
from AccessControl.SecurityInfo import ClassSecurityInfo
from Acquisition import Acquired
from Acquisition import Implicit
from App.class_init import default__class_init__ as InitializeClass
from App.special_dtml import DTMLFile
from Persistence import Persistent
from OFS.SimpleItem import Item
class Factory(RoleManager,
Persistent,
Implicit,
Item
):
"""Model factory meta-data
"""
meta_type = 'Zope Factory'
icon = 'p_/Factory_icon'
security = ClassSecurityInfo()
security.declareObjectProtected(use_factories)
permission='' # Waaaa
permission = '' # Waaaa
_setObject=_getOb=Acquisition.Acquired
_setObject=_getOb = Acquired
manage_options=(
manage_options = (
(
{'label':'Edit', 'action':'manage_main',
'help':('OFSP','Zope-Factory_Edit.stx')},
)
+AccessControl.Role.RoleManager.manage_options
+OFS.SimpleItem.Item.manage_options
+ RoleManager.manage_options
+ Item.manage_options
)
def __init__(self, id, title, object_type, initial, permission=''):
......@@ -62,53 +69,55 @@ class Factory(
REQUEST=None):
"Modify factory properties."
self._unregister()
self.title=title
self.object_type=object_type
self.initial=initial
self.permission=permission
self.title = title
self.object_type = object_type
self.initial = initial
self.permission = permission
self.manage_setPermissionMapping((use_factories,), (permission,))
self._register()
if REQUEST is not None: return self.manage_main(self, REQUEST)
if REQUEST is not None:
return self.manage_main(self, REQUEST)
def manage_afterAdd(self, item, container):
import Product # local to avoid circular import
from App.Product import Product # local to avoid circular import
if hasattr(self, 'aq_parent'):
container=self.aq_parent
elif item is not self:
container=None
if (item is self or
getattr(container, '__class__', None) is Product.Product):
getattr(container, '__class__', None) is Product):
self._register()
def manage_beforeDelete(self, item, container):
import Product # local to avoid circular import
from App.Product import Product # local to avoid circular import
if hasattr(self, 'aq_parent'):
container=self.aq_parent
elif item is not self:
container=None
if (item is self or
getattr(container, '__class__', None) is Product.Product):
getattr(container, '__class__', None) is Product):
self._unregister()
def _register(self):
# Register with the product folder
product=self.aq_parent
product =self.aq_parent
product.aq_acquire('_manage_add_product_meta_type')(
product, self.id, self.object_type, self.permission)
def _unregister(self):
# Unregister with the product folder
product=self.aq_parent
product = self.aq_parent
product.aq_acquire('_manage_remove_product_meta_type')(
product, self.id, self.object_type)
security.declareProtected(edit_factories, 'manage_main')
manage_main=Globals.DTMLFile('dtml/editFactory',globals())
manage_main = DTMLFile('dtml/editFactory',globals())
security.declareProtected(use_factories, 'index_html')
def index_html(self, REQUEST):
" "
""" Main factory view
"""
return getattr(self, self.initial)(self.aq_parent, REQUEST)
def objectIds(self):
......
......@@ -13,19 +13,22 @@
# Implement the manage_addProduct method of object managers
import sys
import types
import Acquisition, sys, Products
from Globals import InitializeClass
from AccessControl import ClassSecurityInfo
from AccessControl.SecurityInfo import ClassSecurityInfo
from AccessControl.PermissionMapping import aqwrap
from AccessControl.Owned import UnownableOwner
import Zope2
from Acquisition import Acquired
from Acquisition import aq_base
from Acquisition import Implicit
from App.class_init import default__class_init__ as InitializeClass
def _product_packages():
"""Returns all product packages including the regularly defined
zope2 packages and those without the Products namespace package.
"""
import Products
packages = {}
for x in dir(Products):
m = getattr(Products, x)
......@@ -37,7 +40,7 @@ def _product_packages():
return packages
class ProductDispatcher(Acquisition.Implicit):
class ProductDispatcher(Implicit):
" "
# Allow access to factory dispatchers
__allow_access_to_unprotected_subobjects__=1
......@@ -57,7 +60,7 @@ class ProductDispatcher(Acquisition.Implicit):
dispatcher=dispatcher_class(product, self.aq_parent, REQUEST)
return dispatcher.__of__(self)
class FactoryDispatcher(Acquisition.Implicit):
class FactoryDispatcher(Implicit):
"""Provide a namespace for product "methods"
"""
......@@ -66,7 +69,7 @@ class FactoryDispatcher(Acquisition.Implicit):
_owner=UnownableOwner
def __init__(self, product, dest, REQUEST=None):
product = Acquisition.aq_base(product)
product = aq_base(product)
self._product=product
self._d=dest
if REQUEST is not None:
......@@ -100,19 +103,19 @@ class FactoryDispatcher(Acquisition.Implicit):
m=d[name]
w=getattr(m, '_permissionMapper', None)
if w is not None:
m=aqwrap(m, Acquisition.aq_base(w), self)
m=aqwrap(m, aq_base(w), self)
return m
# Waaa
m='Products.%s' % p.id
m = 'Products.%s' % p.id
if sys.modules.has_key(m) and sys.modules[m]._m.has_key(name):
return sys.modules[m]._m[name]
raise AttributeError, name
# Provide acquired indicators for critical OM methods:
_setObject=_getOb=Acquisition.Acquired
_setObject = _getOb = Acquired
# Make sure factory methods are unowned:
_owner=UnownableOwner
......
......@@ -18,25 +18,23 @@ import os
import stat
import time
import Acquisition
import Globals
from Globals import InitializeClass
from AccessControl import ClassSecurityInfo
from AccessControl.SecurityInfo import ClassSecurityInfo
from Acquisition import Explicit
from App.class_init import default__class_init__ as InitializeClass
from App.Common import package_home
from App.Common import rfc1123_date
from App.config import getConfiguration
from Globals import package_home
from Common import rfc1123_date
from DateTime import DateTime
from DateTime.DateTime import DateTime
from zope.contenttype import guess_content_type
from ZPublisher.Iterators import filestream_iterator
class ImageFile(Acquisition.Explicit):
class ImageFile(Explicit):
"""Image objects stored in external files."""
security = ClassSecurityInfo()
def __init__(self,path,_prefix=None):
import Globals
if _prefix is None:
_prefix=getConfiguration().softwarehome
elif type(_prefix) is not type(''):
......
......@@ -15,18 +15,21 @@
$Id$
"""
import sys, ExtensionClass, urllib
from Globals import DTMLFile, HTMLFile
from Globals import InitializeClass
from zExceptions import Redirect
from cgi import escape
import sys
import urllib
from zope.interface import implements
from AccessControl import getSecurityManager, Unauthorized
from AccessControl import ClassSecurityInfo
from AccessControl.Permissions import view_management_screens
from cgi import escape
from zope.interface import implements
from interfaces import INavigation
import ExtensionClass
from zExceptions import Redirect
from App.class_init import default__class_init__ as InitializeClass
from App.interfaces import INavigation
from App.special_dtml import HTMLFile
from App.special_dtml import DTMLFile
class Tabs(ExtensionClass.Base):
"""Mix-in provides management folder tab support."""
......
......@@ -15,29 +15,35 @@ __doc__='''Zope registerable permissions
$Id$'''
__version__='$Revision: 1.9 $'[11:-2]
import OFS.SimpleItem, Acquisition, Globals, ExtensionClass, AccessControl.Role
from AccessControl import ClassSecurityInfo, Permissions
view_management_screens = Permissions.view_management_screens
define_permissions = Permissions.define_permissions
class Permission(
AccessControl.Role.RoleManager,
Globals.Persistent, Acquisition.Implicit, OFS.SimpleItem.Item
):
"Model Permission meta-data"
meta_type='Zope Permission'
icon='p_/Permission_icon'
from AccessControl.Permissions import view_management_screens
from AccessControl.Permissions import define_permissions
from AccessControl.Role import RoleManager
from AccessControl.SecurityInfo import ClassSecurityInfo
from Acquisition import Implicit
from App.class_init import default__class_init__ as InitializeClass
from App.special_dtml import DTMLFile
from ExtensionClass import Base
from OFS.SimpleItem import Item
from Persistence import Persistent
class Permission(RoleManager,
Persistent,
Implicit,
Item
):
"""Model Permission meta-data
"""
meta_type = 'Zope Permission'
icon = 'p_/Permission_icon'
security = ClassSecurityInfo()
manage_options=(
(
{'label':'Edit', 'action':'manage_main',
'help':('OFSP','Zope-Permission_Edit.stx')},
'help':('OFSP', 'Zope-Permission_Edit.stx')},
)
+AccessControl.Role.RoleManager.manage_options
+OFS.SimpleItem.Item.manage_options
+ RoleManager.manage_options
+ Item.manage_options
)
def __init__(self, id, title, name):
......@@ -65,25 +71,25 @@ class Permission(
def _register(self):
# Register with the product folder
product=self.aq_parent
product = self.aq_parent
product.aq_acquire('_manage_add_product_permission')(
product, self.name)
def _unregister(self):
# Unregister with the product folder
product=self.aq_parent
product = self.aq_parent
product.aq_acquire('_manage_remove_product_permission')(
product, self.name)
security.declareProtected(view_management_screens, 'manage_main')
manage_main=Globals.DTMLFile('dtml/editPermission',globals())
manage_main = DTMLFile('dtml/editPermission', globals())
index_html=None
index_html = None
Globals.InitializeClass(Permission)
InitializeClass(Permission)
class PermissionManager(ExtensionClass.Base):
class PermissionManager(Base):
security = ClassSecurityInfo()
......@@ -92,15 +98,16 @@ class PermissionManager(ExtensionClass.Base):
},
security.declareProtected(define_permissions, 'manage_addPermissionForm')
manage_addPermissionForm=Globals.DTMLFile('dtml/addPermission',globals())
manage_addPermissionForm = DTMLFile('dtml/addPermission', globals())
security.declareProtected(define_permissions, 'manage_addPermission')
def manage_addPermission(
self, id, title, permission, REQUEST=None):
' '
""" Add a TTW permission.
"""
i=Permission(id, title, permission)
self._setObject(id,i)
self._setObject(id, i)
if REQUEST is not None:
return self.manage_main(self,REQUEST,update_menu=1)
return self.manage_main(self, REQUEST, update_menu=1)
Globals.InitializeClass(PermissionManager)
InitializeClass(PermissionManager)
......@@ -15,36 +15,30 @@
$Id$
"""
import Globals
from DateTime import DateTime
from Persistence import Persistent
from zope.interface import classImplements
from zope.interface import implements
from class_init import default__class_init__
from interfaces import IPersistentExtra
Persistent.__class_init__ = default__class_init__
class PersistentUtil:
implements(IPersistentExtra)
def _datetime(self, x=None):
from DateTime.DateTime import DateTime
if x is None:
return DateTime()
return DateTime(x)
def bobobase_modification_time(self):
jar=self._p_jar
oid=self._p_oid
if jar is None or oid is None: return DateTime()
if jar is None or oid is None:
return self._datetime()
try:
t=self._p_mtime
if t is None: return DateTime()
except: t=0
return DateTime(t)
t = self._p_mtime
except:
t = 0
return self._datetime(t)
def locked_in_version(self):
"""Was the object modified in any version?
"""
import Globals
jar=self._p_jar
oid=self._p_oid
if jar is None or oid is None: return None
......@@ -80,8 +74,24 @@ class PersistentUtil:
except: return 0
return 1
for k, v in PersistentUtil.__dict__.items():
if k[0] != '_':
setattr(Persistent, k, v)
classImplements(Persistent, IPersistentExtra)
_patched = False
def patchPersistent():
global _patched
if _patched:
return
_patched = True
from zope.interface import classImplements
from Persistence import Persistent
from App.class_init import default__class_init__
from App.interfaces import IPersistentExtra
Persistent.__class_init__ = default__class_init__
for k, v in PersistentUtil.__dict__.items():
if k[0] != '_':
setattr(Persistent, k, v)
classImplements(Persistent, IPersistentExtra)
This diff is collapsed.
......@@ -15,23 +15,31 @@
$Id$
"""
import stat
import os.path, re
from logging import getLogger
import os
import re
import stat
from AccessControl.Permission import registerPermissions
from AccessControl.PermissionRole import PermissionRole
import Globals, os, OFS.ObjectManager, OFS.misc_, Products
import AccessControl.Permission
from App.Common import package_home
from App.ImageFile import ImageFile
from App.Product import doInstall
from HelpSys import HelpTopic, APIHelpTopic
from DateTime.DateTime import DateTime
from HelpSys import APIHelpTopic
from HelpSys import HelpTopic
from HelpSys.HelpSys import ProductHelp
from FactoryDispatcher import FactoryDispatcher
from OFS.misc_ import Misc_
from OFS.misc_ import misc_
from OFS.ObjectManager import ObjectManager
from DateTime import DateTime
from zope.interface import implementedBy
from App.FactoryDispatcher import FactoryDispatcher
import ZClasses # to enable 'PC.registerBaseClass()'
# Waaaa
import Products
if not hasattr(Products, 'meta_types'):
Products.meta_types=()
if not hasattr(Products, 'meta_classes'):
......@@ -120,11 +128,9 @@ class ProductContext:
for p in permissions:
if isinstance(p, tuple):
p, default= p
AccessControl.Permission.registerPermissions(
((p, (), default),))
registerPermissions(((p, (), default),))
else:
AccessControl.Permission.registerPermissions(
((p, ()),))
registerPermissions(((p, ()),))
############################################################
# Constructor permission setup
......@@ -137,11 +143,10 @@ class ProductContext:
default = ('Manager',)
pr=PermissionRole(permission,default)
AccessControl.Permission.registerPermissions(
((permission, (), default),))
registerPermissions(((permission, (), default),))
############################################################
OM=OFS.ObjectManager.ObjectManager
OM = ObjectManager
for method in legacy:
if isinstance(method, tuple):
......@@ -183,7 +188,7 @@ class ProductContext:
else:
interfaces = tuple(implementedBy(instance_class))
Products.meta_types=Products.meta_types+(
Products.meta_types = Products.meta_types + (
{ 'name': meta_type or instance_class.meta_type,
# 'action': The action in the add drop down in the ZMI. This is
# currently also required by the _verifyObjectPaste
......@@ -217,12 +222,12 @@ class ProductContext:
m[name+'__roles__']=pr
if icon:
name=os.path.split(icon)[1]
icon=Globals.ImageFile(icon, self.__pack.__dict__)
name = os.path.split(icon)[1]
icon = ImageFile(icon, self.__pack.__dict__)
icon.__roles__=None
if not hasattr(OFS.misc_.misc_, pid):
setattr(OFS.misc_.misc_, pid, OFS.misc_.Misc_(pid, {}))
getattr(OFS.misc_.misc_, pid)[name]=icon
if not hasattr(misc_, pid):
setattr(misc_, pid, Misc_(pid, {}))
getattr(misc_, pid)[name]=icon
def registerZClass(self, Z, meta_type=None):
#
......@@ -303,7 +308,7 @@ class ProductContext:
return
help=self.getProductHelp()
path=os.path.join(Globals.package_home(self.__pack.__dict__),
path=os.path.join(package_home(self.__pack.__dict__),
directory)
# If help directory does not exist, log a warning and return.
......
......@@ -15,18 +15,21 @@
$Id$
"""
from Acquisition import aq_base, aq_parent, aq_inner
from Globals import InitializeClass
from Acquisition import aq_base
from Acquisition import aq_inner
from Acquisition import aq_parent
from AccessControl import getSecurityManager
from AccessControl import ClassSecurityInfo
from AccessControl.Permissions import undo_changes
from DateTime import DateTime
import Globals, ExtensionClass
from ZopeUndo.Prefix import Prefix
from DateTime.DateTime import DateTime
import ExtensionClass
import transaction
from ZopeUndo.Prefix import Prefix
from zope.interface import implements
from interfaces import IUndoSupport
from App.class_init import default__class_init__ as InitializeClass
from App.interfaces import IUndoSupport
from App.special_dtml import DTMLFile
class UndoSupport(ExtensionClass.Base):
......@@ -41,7 +44,7 @@ class UndoSupport(ExtensionClass.Base):
)
security.declareProtected(undo_changes, 'manage_UndoForm')
manage_UndoForm=Globals.DTMLFile(
manage_UndoForm = DTMLFile(
'dtml/undo',
globals(),
PrincipiaUndoBatchSize=20,
......
......@@ -12,8 +12,6 @@
##############################################################################
import logging
from AccessControl.PermissionRole import PermissionRole
import AccessControl.Permission
class ApplicationDefaultPermissions:
_View_Permission='Manager', 'Anonymous'
......@@ -21,6 +19,8 @@ class ApplicationDefaultPermissions:
def default__class_init__(self):
from AccessControl.Permission import registerPermissions
from AccessControl.PermissionRole import PermissionRole
dict=self.__dict__
have=dict.has_key
ft=type(default__class_init__)
......@@ -66,7 +66,7 @@ def default__class_init__(self):
break
if self.__dict__.has_key('__ac_permissions__'):
AccessControl.Permission.registerPermissions(self.__ac_permissions__)
registerPermissions(self.__ac_permissions__)
for acp in self.__ac_permissions__:
pname, mnames = acp[:2]
if len(acp) > 2:
......
import unittest
import Testing
import Zope2
Zope2.startup()
class TestPersistentUtil(unittest.TestCase):
def test_z3interfaces(self):
from App.interfaces import IPersistentExtra
from App.PersistentExtra import PersistentUtil
from zope.interface.verify import verifyClass
verifyClass(IPersistentExtra, PersistentUtil)
class TestPersistent(unittest.TestCase):
......@@ -20,13 +7,14 @@ class TestPersistent(unittest.TestCase):
from App.interfaces import IPersistentExtra
from Persistence import Persistent
from zope.interface.verify import verifyClass
from App.PersistentExtra import patchPersistent
patchPersistent()
verifyClass(IPersistentExtra, Persistent)
def test_suite():
return unittest.TestSuite((
unittest.makeSuite(TestPersistentUtil),
unittest.makeSuite(TestPersistent),
))
......
......@@ -15,22 +15,8 @@
$Id$
"""
import unittest
import ZODB
from App.CacheManager import CacheManager
class TestCacheManager(CacheManager):
# Derived CacheManager that fakes enough of the DatabaseManager to
# make it possible to test at least some parts of the CacheManager.
def __init__(self, connection):
self._p_jar = connection
class DummyConnection:
def __init__(self, db, version=None):
......@@ -62,23 +48,35 @@ class DummyDB:
class CacheManagerTestCase(unittest.TestCase):
def setUp(self):
self.db = DummyDB(42, 24)
self.connection = DummyConnection(self.db)
self.manager = TestCacheManager(self.connection)
def _getManagerClass(self):
from App.CacheManager import CacheManager
class TestCacheManager(CacheManager):
# Derived CacheManager that fakes enough of the DatabaseManager to
# make it possible to test at least some parts of the CacheManager.
def __init__(self, connection):
self._p_jar = connection
return TestCacheManager
def _makeThem(self):
manager = self._getManagerClass()(connection)
return db, connection, manager
def test_cache_size(self):
self.assertEqual(self.manager.cache_size(), 42)
self.db._set_sizes(12, 2)
self.assertEqual(self.manager.cache_size(), 12)
db = DummyDB(42, 24)
connection = DummyConnection(db)
manager = self._getManagerClass()(connection)
self.assertEqual(manager.cache_size(), 42)
db._set_sizes(12, 2)
self.assertEqual(manager.cache_size(), 12)
def test_version_cache_size(self):
self.connection = DummyConnection(self.db, "my version")
self.manager = TestCacheManager(self.connection)
db = DummyDB(42, 24)
connection = DummyConnection(db, "my version")
manager = self._getManagerClass()(connection)
# perform test
self.assertEqual(self.manager.cache_size(), 24)
self.db._set_sizes(12, 2)
self.assertEqual(self.manager.cache_size(), 2)
self.assertEqual(manager.cache_size(), 24)
db._set_sizes(12, 2)
self.assertEqual(manager.cache_size(), 2)
def test_suite():
......
......@@ -14,16 +14,14 @@
"""Tests class initialization.
"""
import ExtensionClass
from App.class_init import default__class_init__ as InitializeClass
def test_InitializeClass():
"""Test that InitializeClass (default__class_init__)
works in specific corner cases.
Check when the class has an ExtensionClass as attribute.
>>> import ExtensionClass
>>> from App.class_init import default__class_init__ as InitializeClass
>>> class AnotherClass(ExtensionClass.Base):
... _need__name__ = 1
......
......@@ -13,21 +13,19 @@
##############################################################################
"""Tests for App.config.setConfiguration()
"""
import os, sys, unittest
import unittest
import Testing
import Zope2
Zope2.startup()
#import Zope2
#Zope2.startup()
import App.config
import App.FindHomes
import Globals
import __builtin__
from Testing.ZopeTestCase.layer import ZopeLite
class SetConfigTests(unittest.TestCase):
layer = ZopeLite
def setUp(self):
# Save away everything as we need to restore it later on
self.clienthome = self.getconfig('clienthome')
......@@ -44,16 +42,22 @@ class SetConfigTests(unittest.TestCase):
debug_mode=self.debug_mode)
def getconfig(self, key):
import App.config
config = App.config.getConfiguration()
return getattr(config, key, None)
def setconfig(self, **kw):
import App.config
config = App.config.getConfiguration()
for key, value in kw.items():
setattr(config, key, value)
App.config.setConfiguration(config)
def testClientHomeLegacySources(self):
import os
import App.FindHomes
import Globals
import __builtin__
self.setconfig(clienthome='foo')
self.assertEqual(os.environ.get('CLIENT_HOME'), 'foo')
self.assertEqual(App.FindHomes.CLIENT_HOME, 'foo')
......@@ -61,6 +65,10 @@ class SetConfigTests(unittest.TestCase):
self.assertEqual(Globals.data_dir, 'foo')
def testInstanceHomeLegacySources(self):
import os
import App.FindHomes
import Globals
import __builtin__
self.setconfig(instancehome='foo')
self.assertEqual(os.environ.get('INSTANCE_HOME'), 'foo')
self.assertEqual(App.FindHomes.INSTANCE_HOME, 'foo')
......@@ -68,6 +76,10 @@ class SetConfigTests(unittest.TestCase):
self.assertEqual(Globals.INSTANCE_HOME, 'foo')
def testSoftwareHomeLegacySources(self):
import os
import App.FindHomes
import Globals
import __builtin__
self.setconfig(softwarehome='foo')
self.assertEqual(os.environ.get('SOFTWARE_HOME'), 'foo')
self.assertEqual(App.FindHomes.SOFTWARE_HOME, 'foo')
......@@ -75,6 +87,10 @@ class SetConfigTests(unittest.TestCase):
self.assertEqual(Globals.SOFTWARE_HOME, 'foo')
def testZopeHomeLegacySources(self):
import os
import App.FindHomes
import Globals
import __builtin__
self.setconfig(zopehome='foo')
self.assertEqual(os.environ.get('ZOPE_HOME'), 'foo')
self.assertEqual(App.FindHomes.ZOPE_HOME, 'foo')
......@@ -82,6 +98,7 @@ class SetConfigTests(unittest.TestCase):
self.assertEqual(Globals.ZOPE_HOME, 'foo')
def testDebugModeLegacySources(self):
import Globals
self.setconfig(debug_mode=True)
self.assertEqual(Globals.DevelopmentMode, True)
self.setconfig(debug_mode=False)
......
......@@ -15,41 +15,48 @@
$Id$
"""
import os
import unittest
import Zope2
import App.version_txt
class VersionTextTestCase(unittest.TestCase):
def setUp(self):
self.fn = os.path.join(os.path.dirname(Zope2.__file__), "version.txt")
App.version_txt._test_reset()
self._resetModuleGlobals()
def tearDown(self):
try:
os.unlink(self.fn)
except OSError:
pass
import os
from App.version_txt import _version_file
if _version_file is not None:
os.unlink(_version_file)
self._resetModuleGlobals()
def _resetModuleGlobals(self):
from App import version_txt
version_txt._version_file = None
version_txt._version_string = None
version_txt._zope_version = None
def writeVersion(self, s):
f = open(self.fn, 'w')
f.write(s)
f.close()
import os
import tempfile
from App import version_txt
assert version_txt._version_file is None
f, version_txt._version_file = tempfile.mkstemp()
os.write(f, s)
os.close(f)
def test_without_version_txt(self):
self.assertEqual(App.version_txt.getZopeVersion(),
(-1, -1, -1, '', -1))
from App.version_txt import getZopeVersion
self.assertEqual(getZopeVersion(), (-1, -1, -1, '', -1))
def test_with_version_txt_final(self):
from App.version_txt import getZopeVersion
self.writeVersion("Zope 2.6.1 (source release, python 2.1, linux2)")
self.assertEqual(App.version_txt.getZopeVersion(),
(2, 6, 1, '', -1))
self.assertEqual(getZopeVersion(), (2, 6, 1, '', -1))
def test_with_version_txt_beta(self):
from App.version_txt import getZopeVersion
self.writeVersion("Zope 2.6.1b2 (source release, python 2.1, linux2)")
self.assertEqual(App.version_txt.getZopeVersion(),
(2, 6, 1, 'b', 2))
self.assertEqual(getZopeVersion(), (2, 6, 1, 'b', 2))
def test_suite():
......
......@@ -14,24 +14,26 @@
$id$
"""
import os, sys, re
import Zope2
import os
import re
import sys
_version_file = None
_version_string = None
_zope_version = None
def _test_reset():
# Needed for testing.
global _version_string, _zope_version
_version_string = None
_zope_version = None
def _get_filename():
import Zope2
if _version_file is not None:
return _version_file
return os.path.join(os.path.dirname(Zope2.__file__), 'version.txt')
def _prep_version_data():
global _version_string, _zope_version
if _version_string is None:
v = sys.version_info
pyver = "python %d.%d.%d, %s" % (v[0], v[1], v[2], sys.platform)
fn = os.path.join(os.path.dirname(Zope2.__file__), 'version.txt')
fn = _get_filename()
expr = re.compile(
r'(?P<product>[A-Za-z0-9]+) +(?P<major>[0-9]+)'
'\.(?P<minor>[0-9]+)\.(?P<micro>[0-9]+)'
......
......@@ -10,44 +10,20 @@
# FOR A PARTICULAR PURPOSE
#
##############################################################################
"""Shared global data
"""Global definitions"""
o N.B.: DO NOT IMPORT ANYTHING HERE! This module is just for shared data!
"""
__version__='$Revision: 1.56 $'[11:-2]
DevelopmentMode = False
# Global constants: __replaceable__ flags:
NOT_REPLACEABLE = 0
REPLACEABLE = 1
UNIQUE = 2
import Acquisition, ComputedAttribute, App.PersistentExtra, os
import TreeDisplay
from App.Common import package_home, attrget, Dictionary
from App.config import getConfiguration as _getConfiguration
from Persistence import Persistent, PersistentMapping
from App.class_init import default__class_init__, ApplicationDefaultPermissions
# Nicer alias for class initializer.
InitializeClass = default__class_init__
from App.special_dtml import HTML, HTMLFile, DTMLFile
from App.Dialogs import MessageDialog
from App.ImageFile import ImageFile
VersionNameName='Zope-Version'
_cfg = _getConfiguration()
data_dir = _cfg.clienthome
# backward compatibility
INSTANCE_HOME = _cfg.instancehome
SOFTWARE_HOME = _cfg.softwarehome
ZOPE_HOME = _cfg.zopehome
opened=[]
DevelopmentMode=_cfg.debug_mode
del _cfg, _getConfiguration
# XXX ZODB stashes the main database object here
opened = []
......@@ -17,16 +17,16 @@ $Id$
import types
from AccessControl import ClassSecurityInfo
from Globals import DTMLFile
from Globals import InitializeClass
from Globals import Persistent
from AccessControl.SecurityInfo import ClassSecurityInfo
from App.class_init import default__class_init__ as InitializeClass
from App.special_dtml import DTMLFile
from Persistence import Persistent
import HelpTopic
from HelpTopic import HelpTopic # XXX relative to avoid cycle
_ignore_objects = {}
class APIHelpTopic(HelpTopic.HelpTopic):
class APIHelpTopic(HelpTopic):
""" Provides API documentation.
"""
......
......@@ -10,23 +10,23 @@
# FOR A PARTICULAR PURPOSE
#
##############################################################################
from cgi import escape
import Acquisition
from OFS.SimpleItem import Item
from OFS.ObjectManager import ObjectManager
from Globals import Persistent, DTMLFile, HTML
from Globals import InitializeClass
from AccessControl import ClassSecurityInfo
from AccessControl.Permissions import access_contents_information
from AccessControl.Permissions import add_documents_images_and_files
from AccessControl.Permissions import view as View
from AccessControl.SecurityInfo import ClassSecurityInfo
from Acquisition import Implicit
from App.class_init import default__class_init__ as InitializeClass
from App.special_dtml import DTMLFile
from App.special_dtml import HTML
from OFS.ObjectManager import ObjectManager
from OFS.SimpleItem import Item
from Persistence import Persistent
from Products.ZCatalog.ZCatalog import ZCatalog
from Products.ZCatalog.Lazy import LazyCat
from cgi import escape
import Products
import HelpTopic
class HelpSys(Acquisition.Implicit, ObjectManager, Item, Persistent):
class HelpSys(Implicit, ObjectManager, Item, Persistent):
"""
Zope Help System
......@@ -48,6 +48,7 @@ class HelpSys(Acquisition.Implicit, ObjectManager, Item, Persistent):
security.declareProtected(access_contents_information, 'helpValues')
def helpValues(self, spec=None):
"ProductHelp objects of all Products that have help"
import Products
hv=[]
for product in self.Control_Panel.Products.objectValues():
productHelp=product.getProductHelp()
......@@ -192,7 +193,7 @@ class TreeCollection:
return self.id
class ProductHelp(Acquisition.Implicit, ObjectManager, Item, Persistent):
class ProductHelp(Implicit, ObjectManager, Item, Persistent):
"""
Manages a collection of Help Topics for a given Product.
......@@ -240,8 +241,9 @@ class ProductHelp(Acquisition.Implicit, ObjectManager, Item, Persistent):
security.declareProtected(add_documents_images_and_files, 'addTopic')
def addTopic(self, id, title, REQUEST=None):
"Add a Help Topic"
topic=HelpTopic.DTMLDocumentTopic(
HelpTopic.default_topic_content, __name__=id)
from HelpSys.HelpTopic import DTMLDocumentTopic
from HelpSys.HelpTopic import default_topic_content
topic = DTMLDocumentTopic(default_topic_content, __name__=id)
topic.title=title
self._setObject(id, topic)
if REQUEST is not None:
......@@ -297,6 +299,7 @@ class ProductHelp(Acquisition.Implicit, ObjectManager, Item, Persistent):
return topics
def all_meta_types(self):
import Products
f=lambda x: x['name'] in ('Image', 'File')
return filter(f, Products.meta_types) + self.meta_types
......
......@@ -10,19 +10,21 @@
# FOR A PARTICULAR PURPOSE
#
##############################################################################
import os
import Acquisition
from ComputedAttribute import ComputedAttribute
from OFS.SimpleItem import Item
from Globals import Persistent, HTML, DTMLFile, ImageFile
from Globals import InitializeClass
from AccessControl import ClassSecurityInfo
from AccessControl.Permissions import access_contents_information
from AccessControl.Permissions import view as View
from AccessControl.SecurityInfo import ClassSecurityInfo
from Acquisition import Implicit
from App.class_init import default__class_init__ as InitializeClass
from App.ImageFile import ImageFile
from App.special_dtml import DTMLFile
from App.special_dtml import HTML
from ComputedAttribute import ComputedAttribute
from OFS.DTMLDocument import DTMLDocument
from OFS.PropertyManager import PropertyManager
import os.path
import Globals
from OFS.SimpleItem import Item
from Persistence import Persistent
class HelpTopicBase:
"Mix-in Help Topic support class"
......@@ -110,7 +112,7 @@ class HelpTopicBase:
return c
class HelpTopic(Acquisition.Implicit, HelpTopicBase, Item, PropertyManager, Persistent):
class HelpTopic(Implicit, HelpTopicBase, Item, PropertyManager, Persistent):
"""
Abstract base class for Help Topics
"""
......
......@@ -21,18 +21,21 @@ from cgi import escape
from StringIO import StringIO
from warnings import warn
import Globals, Products, App.Product, App.ProductRegistry
import Products
import App.Product
import App.ProductRegistry
import transaction
from Globals import InitializeClass
from AccessControl import ClassSecurityInfo
from AccessControl.User import UserFolder
from Acquisition import aq_base
from App.ApplicationManager import ApplicationManager
from App.class_init import default__class_init__ as InitializeClass
from App.class_init import ApplicationDefaultPermissions
from App.config import getConfiguration
from App.Product import doInstall
from App.ProductContext import ProductContext
from DateTime import DateTime
from HelpSys.HelpSys import HelpSys
from Persistence import Persistent
from webdav.NullResource import NullResource
from zExceptions import Redirect as RedirectException, Forbidden
......@@ -47,24 +50,26 @@ from misc_ import Misc_
LOG = getLogger('Application')
class Application(Globals.ApplicationDefaultPermissions,
ZDOM.Root, Folder.Folder,
App.ProductRegistry.ProductRegistry, FindSupport):
class Application(ApplicationDefaultPermissions,
ZDOM.Root,
Folder.Folder,
App.ProductRegistry.ProductRegistry,
FindSupport,
):
"""Top-level system object"""
implements(IApplication)
security = ClassSecurityInfo()
title ='Zope'
__defined_roles__=('Manager','Anonymous','Owner')
web__form__method='GET'
isTopLevelPrincipiaApplicationObject=1
_isBeingUsedAsAMethod_=0
title = 'Zope'
__defined_roles__ = ('Manager','Anonymous','Owner')
web__form__method = 'GET'
isTopLevelPrincipiaApplicationObject = 1
_isBeingUsedAsAMethod_ = 0
# Create the help system object
HelpSys=HelpSys('HelpSys')
HelpSys = HelpSys('HelpSys')
p_=misc_.p_
misc_=misc_.misc_
......@@ -78,7 +83,7 @@ class Application(Globals.ApplicationDefaultPermissions,
# UserFolder is deleted. This is necessary to allow people
# to replace the top-level UserFolder object.
__allow_groups__=UserFolder()
__allow_groups__ = UserFolder()
# Set the universal default method to index_html
_object_manager_browser_default_id = 'index_html'
......@@ -87,19 +92,21 @@ class Application(Globals.ApplicationDefaultPermissions,
def __init__(self):
# Initialize users
uf=UserFolder()
self.__allow_groups__=uf
uf = UserFolder()
self.__allow_groups__ = uf
self._setObject('acl_users', uf)
# Initialize control panel
cpl=ApplicationManager()
cpl = ApplicationManager()
cpl._init()
self._setObject('Control_Panel', cpl)
transaction.get().note("Created Zope Application")
def id(self):
try: return self.REQUEST['SCRIPT_NAME'][1:]
except: return self.title
try:
return self.REQUEST['SCRIPT_NAME'][1:]
except:
return self.title
def title_and_id(self):
return self.title
......@@ -120,17 +127,24 @@ class Application(Globals.ApplicationDefaultPermissions,
def __bobo_traverse__(self, REQUEST, name=None):
try: return getattr(self, name)
except AttributeError: pass
try: return self[name]
except KeyError: pass
method=REQUEST.get('REQUEST_METHOD', 'GET')
try:
return getattr(self, name)
except AttributeError:
pass
try:
return self[name]
except KeyError:
pass
method = REQUEST.get('REQUEST_METHOD', 'GET')
if not method in ('GET', 'POST'):
return NullResource(self, name, REQUEST).__of__(self)
# Waaa. unrestrictedTraverse calls us with a fake REQUEST.
# There is proabably a better fix for this.
try: REQUEST.RESPONSE.notFoundError("%s\n%s" % (name, method))
try:
REQUEST.RESPONSE.notFoundError("%s\n%s" % (name, method))
except AttributeError:
raise KeyError, name
......@@ -286,7 +300,7 @@ class Application(Globals.ApplicationDefaultPermissions,
InitializeClass(Application)
class Expired(Globals.Persistent):
class Expired(Persistent):
icon='p_/broken'
......@@ -345,7 +359,7 @@ class AppInitializer:
# Ensure that Control Panel exists.
if not hasattr(app, 'Control_Panel'):
cpl=ApplicationManager()
cpl = ApplicationManager()
cpl._init()
app._setObject('Control_Panel', cpl)
self.commit('Added Control_Panel')
......@@ -544,6 +558,7 @@ class AppInitializer:
self.commit('Added virtual_hosting')
def check_zglobals(self):
import Globals
if not doInstall():
return
......@@ -615,7 +630,7 @@ def install_products(app):
meta_types=[]
done={}
debug_mode = App.config.getConfiguration().debug_mode
debug_mode = getConfiguration().debug_mode
transaction.get().note('Prior to product installs')
transaction.commit()
......@@ -673,7 +688,7 @@ def import_products():
done={}
products = get_products()
debug_mode = App.config.getConfiguration().debug_mode
debug_mode = getConfiguration().debug_mode
for priority, product_name, index, product_dir in products:
if done.has_key(product_name):
......@@ -739,6 +754,7 @@ def get_folder_permissions():
def install_product(app, product_dir, product_name, meta_types,
folder_permissions, raise_exc=0, log_exc=1):
from App.ProductContext import ProductContext
path_join=os.path.join
isdir=os.path.isdir
exists=os.path.exists
......@@ -846,6 +862,7 @@ def install_product(app, product_dir, product_name, meta_types,
def install_package(app, module, init_func, raise_exc=False, log_exc=True):
"""Installs a Python package like a product."""
from App.ProductContext import ProductContext
try:
product = App.Product.initializeProduct(module,
module.__name__,
......@@ -878,13 +895,16 @@ def install_standards(app):
return
# Install the replaceable standard objects
from App.Common import package_home
from App.special_dtml import DTMLFile
from Products.PageTemplates.PageTemplateFile import PageTemplateFile
std_dir = os.path.join(Globals.package_home(globals()), 'standard')
std_dir = os.path.join(package_home(globals()), 'standard')
wrote = 0
for fn in os.listdir(std_dir):
base, ext = os.path.splitext(fn)
if ext == '.dtml':
ob = Globals.DTMLFile(base, std_dir)
ob = DTMLFile(base, std_dir)
fn = base
if hasattr(app, fn):
continue
......
......@@ -14,18 +14,22 @@
$Id$
"""
import time, sys
from logging import getLogger
import Globals
from Globals import InitializeClass
from Globals import DTMLFile
from Acquisition import aq_get, aq_acquire, aq_inner, aq_parent, aq_base
import sys
import time
from AccessControl import ClassSecurityInfo
from AccessControl import getSecurityManager
from AccessControl.Role import _isBeingUsedAsAMethod
from AccessControl import Unauthorized
from AccessControl.Permissions import view_management_screens
from AccessControl.Role import _isBeingUsedAsAMethod
from AccessControl.SecurityInfo import ClassSecurityInfo
from AccessControl.SecurityManagement import getSecurityManager
from AccessControl.unauthorized import Unauthorized
from Acquisition import aq_acquire
from Acquisition import aq_base
from Acquisition import aq_get
from Acquisition import aq_inner
from Acquisition import aq_parent
from App.class_init import default__class_init__ as InitializeClass
from App.special_dtml import DTMLFile
ZCM_MANAGERS = '__ZCacheManager_ids__'
......
......@@ -15,23 +15,33 @@
$Id$
"""
import re, sys, tempfile
import warnings
from cgi import escape
from marshal import loads, dumps
from urllib import quote, unquote
from zlib import compress, decompress
import Globals, Moniker, ExtensionClass
from marshal import dumps
from marshal import loads
import re
import sys
import tempfile
from urllib import quote
from urllib import unquote
import warnings
from zlib import compress
from zlib import decompress
import transaction
from Globals import InitializeClass
from AccessControl import ClassSecurityInfo
from AccessControl import getSecurityManager
from AccessControl.Permissions import view_management_screens
from AccessControl.Permissions import copy_or_move
from AccessControl.Permissions import delete_objects
from Acquisition import aq_base, aq_inner, aq_parent
from Acquisition import aq_base
from Acquisition import aq_inner
from Acquisition import aq_parent
from App.class_init import default__class_init__ as InitializeClass
from App.Dialogs import MessageDialog
from App.special_dtml import HTML
from App.special_dtml import HTMLFile
from App.special_dtml import DTMLFile
from ExtensionClass import Base
from webdav.Lockable import ResourceLockedError
from zExceptions import Unauthorized, BadRequest
from ZODB.POSException import ConflictError
......@@ -40,22 +50,25 @@ from zope.event import notify
from zope.lifecycleevent import ObjectCopiedEvent
from zope.app.container.contained import ObjectMovedEvent
from zope.app.container.contained import notifyContainerModified
from OFS.event import ObjectWillBeMovedEvent
from OFS.event import ObjectClonedEvent
import OFS.subscribers
from OFS.interfaces import ICopyContainer
from OFS.interfaces import ICopySource
from OFS.Moniker import loadMoniker
from OFS.Moniker import Moniker
from OFS.subscribers import compatibilityCall
class CopyError(Exception): pass
class CopyError(Exception):
pass
copy_re = re.compile('^copy([0-9]*)_of_(.*)')
_marker=[]
class CopyContainer(ExtensionClass.Base):
class CopyContainer(Base):
"""Interface for containerish objects which allow cut/copy/paste"""
......@@ -103,7 +116,7 @@ class CopyContainer(ExtensionClass.Base):
if not ob.cb_isMoveable():
raise CopyError, eNotSupported % escape(id)
m=Moniker.Moniker(ob)
m = Moniker(ob)
oblist.append(m.dump())
cp=(1, oblist)
cp=_cb_encode(cp)
......@@ -129,7 +142,7 @@ class CopyContainer(ExtensionClass.Base):
ob=self._getOb(id)
if not ob.cb_isCopyable():
raise CopyError, eNotSupported % escape(id)
m=Moniker.Moniker(ob)
m = Moniker(ob)
oblist.append(m.dump())
cp=(0, oblist)
cp=_cb_encode(cp)
......@@ -185,7 +198,7 @@ class CopyContainer(ExtensionClass.Base):
oblist = []
app = self.getPhysicalRoot()
for mdata in mdatas:
m = Moniker.loadMoniker(mdata)
m = loadMoniker(mdata)
try:
ob = m.bind(app)
except ConflictError:
......@@ -227,7 +240,7 @@ class CopyContainer(ExtensionClass.Base):
ob._postCopy(self, op=0)
OFS.subscribers.compatibilityCall('manage_afterClone', ob, ob)
compatibilityCall('manage_afterClone', ob, ob)
notify(ObjectClonedEvent(ob))
......@@ -309,7 +322,7 @@ class CopyContainer(ExtensionClass.Base):
return result
security.declareProtected(view_management_screens, 'manage_renameForm')
manage_renameForm=Globals.DTMLFile('dtml/renameForm', globals())
manage_renameForm = DTMLFile('dtml/renameForm', globals())
security.declareProtected(view_management_screens, 'manage_renameObjects')
def manage_renameObjects(self, ids=[], new_ids=[], REQUEST=None):
......@@ -427,7 +440,7 @@ class CopyContainer(ExtensionClass.Base):
ob._postCopy(self, op=0)
OFS.subscribers.compatibilityCall('manage_afterClone', ob, ob)
compatibilityCall('manage_afterClone', ob, ob)
notify(ObjectClonedEvent(ob))
......@@ -447,7 +460,7 @@ class CopyContainer(ExtensionClass.Base):
app = self.getPhysicalRoot()
for mdata in cp[1]:
m = Moniker.loadMoniker(mdata)
m = loadMoniker(mdata)
oblist.append(m.bind(app))
return oblist
......@@ -527,7 +540,7 @@ class CopyContainer(ExtensionClass.Base):
InitializeClass(CopyContainer)
class CopySource(ExtensionClass.Base):
class CopySource(Base):
"""Interface for objects which allow themselves to be copied."""
......@@ -645,7 +658,7 @@ def cookie_path(request):
fMessageDialog=Globals.HTML("""
fMessageDialog = HTML("""
<HTML>
<HEAD>
<TITLE>&dtml-title;</TITLE>
......
......@@ -14,20 +14,25 @@
$Id$
"""
from Globals import InitializeClass
from ZPublisher.Converters import type_converters
from Globals import HTML, DTMLFile, MessageDialog
from zope.contenttype import guess_content_type
from DTMLMethod import DTMLMethod, decapitate
from PropertyManager import PropertyManager
from webdav.common import rfc1123_date
from webdav.Lockable import ResourceLockedError
from sgmllib import SGMLParser
from urllib import quote
from AccessControl import getSecurityManager
from AccessControl.Permissions import change_dtml_methods
from AccessControl.Permissions import change_dtml_documents
from App.class_init import default__class_init__ as InitializeClass
from App.Dialogs import MessageDialog
from App.special_dtml import DTMLFile
from App.special_dtml import HTML
from OFS.DTMLMethod import decapitate
from OFS.DTMLMethod import DTMLMethod
from webdav.common import rfc1123_date
from webdav.Lockable import ResourceLockedError
from zExceptions.TracebackSupplement import PathTracebackSupplement
from zope.contenttype import guess_content_type
from ZPublisher.Converters import type_converters
from OFS.PropertyManager import PropertyManager
done='done'
......
......@@ -14,20 +14,17 @@
$Id$
"""
import History
from Globals import HTML, DTMLFile, MessageDialog
from Globals import InitializeClass
from SimpleItem import Item_w__name__, pretty_tb
from zope.contenttype import guess_content_type
from PropertyManager import PropertyManager
from AccessControl import ClassSecurityInfo
import sys
from urllib import quote
from AccessControl.SecurityInfo import ClassSecurityInfo
from AccessControl.Role import RoleManager
from webdav.common import rfc1123_date
from webdav.Lockable import ResourceLockedError
from ZDOM import ElementWithTitle
from Acquisition import Implicit
from App.class_init import default__class_init__ as InitializeClass
from App.Dialogs import MessageDialog
from App.special_dtml import DTMLFile
from App.special_dtml import HTML
from DateTime.DateTime import DateTime
from urllib import quote
import Globals, sys, Acquisition
from AccessControl import getSecurityManager
from AccessControl.Permissions import change_dtml_methods
from AccessControl.Permissions import view_management_screens
......@@ -36,18 +33,32 @@ from AccessControl.Permissions import view as View
from AccessControl.Permissions import ftp_access
from AccessControl.DTML import RestrictedDTML
from AccessControl.requestmethod import requestmethod
from Cache import Cacheable
from webdav.common import rfc1123_date
from webdav.Lockable import ResourceLockedError
from zExceptions import Forbidden
from zExceptions.TracebackSupplement import PathTracebackSupplement
from ZPublisher.Iterators import IStreamIterator
from zope.contenttype import guess_content_type
from OFS.Cache import Cacheable
from OFS.History import Historical
from OFS.History import html_diff
from OFS.PropertyManager import PropertyManager
from OFS.SimpleItem import Item_w__name__
from OFS.SimpleItem import pretty_tb
from OFS.ZDOM import ElementWithTitle
_marker = [] # Create a new marker object.
class DTMLMethod(RestrictedDTML, HTML, Acquisition.Implicit, RoleManager,
ElementWithTitle, Item_w__name__,
History.Historical,
class DTMLMethod(RestrictedDTML,
HTML,
Implicit,
RoleManager,
ElementWithTitle,
Item_w__name__,
Historical,
Cacheable,
):
):
"""DTML Method objects are DocumentTemplate.HTML objects that act
as methods of their containers."""
meta_type='DTML Method'
......@@ -59,12 +70,13 @@ class DTMLMethod(RestrictedDTML, HTML, Acquisition.Implicit, RoleManager,
security.declareObjectProtected(View)
# Documents masquerade as functions:
class func_code: pass
class func_code:
pass
func_code=func_code()
func_code.co_varnames='self','REQUEST','RESPONSE'
func_code.co_argcount=3
func_code.co_varnames = 'self','REQUEST','RESPONSE'
func_code.co_argcount = 3
manage_options=(
manage_options = (
(
{'label':'Edit', 'action':'manage_main',
'help':('OFSP','DTML-DocumentOrMethod_Edit.stx')},
......@@ -76,10 +88,10 @@ class DTMLMethod(RestrictedDTML, HTML, Acquisition.Implicit, RoleManager,
{'label':'Proxy', 'action':'manage_proxyForm',
'help':('OFSP','DTML-DocumentOrMethod_Proxy.stx')},
)
+History.Historical.manage_options
+RoleManager.manage_options
+Item_w__name__.manage_options
+Cacheable.manage_options
+ Historical.manage_options
+ RoleManager.manage_options
+ Item_w__name__.manage_options
+ Cacheable.manage_options
)
# Careful in permissiong changes--used by DTMLDocument!
......@@ -375,9 +387,7 @@ class DTMLMethod(RestrictedDTML, HTML, Acquisition.Implicit, RoleManager,
historyComparisonResults=''):
return DTMLMethod.inheritedAttribute('manage_historyCompare')(
self, rev1, rev2, REQUEST,
historyComparisonResults=History.html_diff(
rev1.read(), rev2.read()
))
historyComparisonResults = html_diff(rev1.read(), rev2.read()))
InitializeClass(DTMLMethod)
......
......@@ -17,23 +17,24 @@ $Id$
from string import translate
import ExtensionClass
from AccessControl import ClassSecurityInfo
from AccessControl.DTML import RestrictedDTML
from AccessControl.Permission import name_trans
from AccessControl.Permissions import view_management_screens
from Acquisition import aq_base
from DateTime import DateTime
from App.special_dtml import DTMLFile
from App.class_init import default__class_init__ as InitializeClass
from DateTime.DateTime import DateTime
from DocumentTemplate.DT_Util import Eval
from DocumentTemplate.DT_Util import InstanceDict, TemplateDict
from Globals import DTMLFile
from Globals import InitializeClass
from DocumentTemplate.DT_Util import InstanceDict
from DocumentTemplate.DT_Util import TemplateDict
from ExtensionClass import Base
from zope.interface import implements
from interfaces import IFindSupport
from OFS.interfaces import IFindSupport
class FindSupport(ExtensionClass.Base):
class FindSupport(Base):
"""Find support for Zope Folders"""
......
......@@ -17,18 +17,21 @@ Folders are the basic container objects and are analogous to directories.
$Id$
"""
import AccessControl.Role, webdav.Collection
from Globals import InitializeClass
from AccessControl import getSecurityManager
from AccessControl import Unauthorized
from AccessControl.Permissions import add_page_templates
from AccessControl.Permissions import add_user_folders
from Globals import DTMLFile
from AccessControl.Role import RoleManager
from AccessControl.SecurityManagement import getSecurityManager
from AccessControl.unauthorized import Unauthorized
from App.class_init import default__class_init__ as InitializeClass
from App.special_dtml import DTMLFile
from webdav.Collection import Collection
from zope.interface import implements
import FindSupport
import SimpleItem, ObjectManager, PropertyManager
from interfaces import IFolder
from OFS.FindSupport import FindSupport
from OFS.interfaces import IFolder
from OFS.ObjectManager import ObjectManager
from OFS.PropertyManager import PropertyManager
from OFS.SimpleItem import Item
manage_addFolderForm=DTMLFile('dtml/folderAdd', globals())
......@@ -70,12 +73,12 @@ def manage_addFolder(self, id, title='',
class Folder(
ObjectManager.ObjectManager,
PropertyManager.PropertyManager,
AccessControl.Role.RoleManager,
webdav.Collection.Collection,
SimpleItem.Item,
FindSupport.FindSupport,
ObjectManager,
PropertyManager,
RoleManager,
Collection,
Item,
FindSupport,
):
"""Folders are basic container objects that provide a standard
......@@ -89,15 +92,15 @@ class Folder(
_properties=({'id':'title', 'type': 'string','mode':'wd'},)
manage_options=(
ObjectManager.ObjectManager.manage_options+
ObjectManager.manage_options+
(
{'label':'View', 'action':'',
'help':('OFSP','Folder_View.stx')},
)+
PropertyManager.PropertyManager.manage_options+
AccessControl.Role.RoleManager.manage_options+
SimpleItem.Item.manage_options+
FindSupport.FindSupport.manage_options
PropertyManager.manage_options+
RoleManager.manage_options+
Item.manage_options+
FindSupport.manage_options
)
__ac_permissions__=()
......
......@@ -14,19 +14,25 @@
$Id$
"""
import Globals, ExtensionClass, difflib
from Globals import InitializeClass
from DateTime import DateTime
from Acquisition import Implicit, aq_base
from struct import pack, unpack
from cgi import escape
from zExceptions import Redirect
from AccessControl import ClassSecurityInfo
import difflib
from struct import pack, unpack
from AccessControl.Permissions import view_history
from AccessControl.SecurityInfo import ClassSecurityInfo
from Acquisition import aq_base
from Acquisition import Implicit
from App.class_init import default__class_init__ as InitializeClass
from App.special_dtml import DTMLFile
from DateTime.DateTime import DateTime
from ExtensionClass import Base
from zExceptions import Redirect
class TemporalParadox(Exception): pass
class TemporalParadox(Exception):
pass
class HistorySelectionError(Exception): pass
class HistorySelectionError(Exception):
pass
class HystoryJar:
"""A ZODB Connection-like object that provides access to data
......@@ -75,7 +81,7 @@ class Historian(Implicit):
"We aren't real, so we delegate to that that spawned us!"
raise Redirect, REQUEST['URL2']+'/manage_change_history_page'
class Historical(ExtensionClass.Base):
class Historical(Base):
"""Mix-in class to provide a veiw that shows hystorical changes
The display is similar to that used for undo, except that the transactions
......@@ -97,7 +103,7 @@ class Historical(ExtensionClass.Base):
)
security.declareProtected(view_history, 'manage_change_history_page')
manage_change_history_page=Globals.DTMLFile(
manage_change_history_page = DTMLFile(
'dtml/history', globals(),
HistoryBatchSize=20,
first_transaction=0, last_transaction=20)
......@@ -155,7 +161,7 @@ class Historical(ExtensionClass.Base):
def manage_afterHistoryCopy(self): pass # ? (Hook)
_manage_historyComparePage=Globals.DTMLFile(
_manage_historyComparePage = DTMLFile(
'dtml/historyCompare', globals(), management_view='History')
security.declareProtected(view_history, 'manage_historyCompare')
def manage_historyCompare(self, rev1, rev2, REQUEST,
......
......@@ -14,48 +14,53 @@
$Id$
"""
from cgi import escape
from cStringIO import StringIO
from mimetools import choose_boundary
import struct
from zope.contenttype import guess_content_type
from zope.interface import implementedBy
from zope.interface import implements
from Globals import DTMLFile
from Globals import InitializeClass
from PropertyManager import PropertyManager
from AccessControl import ClassSecurityInfo
from AccessControl.Role import RoleManager
from AccessControl.Permissions import change_images_and_files
from AccessControl.Permissions import view_management_screens
from AccessControl.Permissions import view as View
from AccessControl.Permissions import ftp_access
from AccessControl.Permissions import delete_objects
from AccessControl.Role import RoleManager
from AccessControl.SecurityInfo import ClassSecurityInfo
from Acquisition import Implicit
from App.class_init import default__class_init__ as InitializeClass
from App.special_dtml import DTMLFile
from DateTime.DateTime import DateTime
from Persistence import Persistent
from webdav.common import rfc1123_date
from webdav.interfaces import IWriteLock
from webdav.Lockable import ResourceLockedError
from SimpleItem import Item_w__name__
from cStringIO import StringIO
from Globals import Persistent
from Acquisition import Implicit
from DateTime import DateTime
from Cache import Cacheable
from mimetools import choose_boundary
from ZPublisher import HTTPRangeSupport
from ZPublisher.HTTPRequest import FileUpload
from ZPublisher.Iterators import filestream_iterator
from zExceptions import Redirect
from cgi import escape
import transaction
from zope.contenttype import guess_content_type
from zope.interface import implementedBy
from zope.interface import implements
manage_addFileForm=DTMLFile('dtml/imageAdd', globals(),Kind='File',kind='file')
def manage_addFile(self,id,file='',title='',precondition='', content_type='',
REQUEST=None):
from OFS.Cache import Cacheable
from OFS.PropertyManager import PropertyManager
from OFS.SimpleItem import Item_w__name__
manage_addFileForm = DTMLFile('dtml/imageAdd',
globals(),
Kind='File',
kind='file',
)
def manage_addFile(self, id, file='', title='', precondition='',
content_type='', REQUEST=None):
"""Add a new File object.
Creates a new File object 'id' with the contents of 'file'"""
id=str(id)
title=str(title)
content_type=str(content_type)
precondition=str(precondition)
id = str(id)
title = str(title)
content_type = str(content_type)
precondition = str(precondition)
id, title = cookId(id, title, file)
......@@ -498,6 +503,7 @@ class File(Persistent, Implicit, PropertyManager,
return content_type
def _read_data(self, file):
import transaction
n=1 << 16
......
......@@ -15,12 +15,15 @@
$Id$
"""
import warnings
import marshal
import sys, fnmatch, copy, os, re
from cgi import escape
from cStringIO import StringIO
from types import StringType, UnicodeType
import copy
import fnmatch
import marshal
import os
import re
import sys
import warnings
import App.Common
import App.FactoryDispatcher, Products
......@@ -34,16 +37,18 @@ from AccessControl.Permissions import import_export_objects
from AccessControl import getSecurityManager
from AccessControl.ZopeSecurityPolicy import getRoles
from Acquisition import aq_base
from App.class_init import default__class_init__ as InitializeClass
from App.config import getConfiguration
from Globals import InitializeClass
from Globals import DTMLFile, Persistent
from Globals import MessageDialog
from Globals import REPLACEABLE, NOT_REPLACEABLE, UNIQUE
from App.Dialogs import MessageDialog
from App.special_dtml import DTMLFile
from Globals import REPLACEABLE
from Globals import NOT_REPLACEABLE
from Globals import UNIQUE
from Persistence import Persistent
from webdav.Collection import Collection
from webdav.Lockable import ResourceLockedError
from webdav.NullResource import NullResource
from zExceptions import BadRequest
from ZODB.POSException import ConflictError
from zope.interface import implements
from zope.component.interfaces import ComponentLookupError
......@@ -78,8 +83,9 @@ def checkValidId(self, id, allow_dup=0):
# check_valid_id() will be called again later with allow_dup
# set to false before the object is added.
if not id or not isinstance(id, StringType):
if isinstance(id, UnicodeType): id = escape(id)
if not id or not isinstance(id, str):
if isinstance(id, unicode):
id = escape(id)
raise BadRequest, ('Empty or invalid id specified', id)
if bad_id(id) is not None:
raise BadRequest, (
......
......@@ -15,19 +15,19 @@
$Id$
"""
from types import StringType
import warnings
from AccessControl import ClassSecurityInfo
from AccessControl.Permissions import access_contents_information
from AccessControl.Permissions import manage_properties
from AccessControl.SecurityInfo import ClassSecurityInfo
from Acquisition import aq_base
from App.class_init import default__class_init__ as InitializeClass
from DocumentTemplate.sequence import sort
from Globals import InitializeClass
from zope.interface import implements
from zope.app.container.contained import notifyContainerModified
from interfaces import IOrderedContainer as IOrderedContainer
from ObjectManager import ObjectManager
from OFS.interfaces import IOrderedContainer as IOrderedContainer
from OFS.ObjectManager import ObjectManager
class OrderSupport(object):
......@@ -138,7 +138,7 @@ class OrderSupport(object):
suppress_events=False):
""" Move specified sub-objects by delta.
"""
if type(ids) is StringType:
if type(ids) is str:
ids = (ids,)
min_position = 0
objects = list(self._objects)
......
......@@ -15,16 +15,16 @@
$Id$
"""
from AccessControl import getSecurityManager
from AccessControl import Unauthorized
from AccessControl.SecurityManagement import getSecurityManager
from AccessControl.unauthorized import Unauthorized
from AccessControl.Permissions import add_page_templates
from AccessControl.Permissions import add_user_folders
from Globals import DTMLFile
from App.special_dtml import DTMLFile
from zope.interface import implements
from Folder import Folder
from interfaces import IOrderedFolder
from OrderSupport import OrderSupport
from OFS.Folder import Folder
from OFS.interfaces import IOrderedFolder
from OFS.OrderSupport import OrderSupport
manage_addOrderedFolderForm = DTMLFile('dtml/addOrderedFolder', globals())
......
......@@ -16,26 +16,26 @@ $Id$
"""
from cgi import escape
from types import ListType
import ExtensionClass
from Globals import InitializeClass
from AccessControl import ClassSecurityInfo
from AccessControl.Permissions import access_contents_information
from AccessControl.Permissions import manage_properties
from AccessControl.SecurityInfo import ClassSecurityInfo
from Acquisition import aq_base
from Globals import DTMLFile, MessageDialog
from Globals import Persistent
from App.class_init import default__class_init__ as InitializeClass
from ExtensionClass import Base
from App.special_dtml import DTMLFile
from App.Dialogs import MessageDialog
from Persistence import Persistent
from zExceptions import BadRequest
from zope.interface import implements
from ZPublisher.Converters import type_converters
import ZDOM
from interfaces import IPropertyManager
from PropertySheets import DefaultPropertySheets, vps
from OFS.interfaces import IPropertyManager
from OFS.PropertySheets import DefaultPropertySheets
from OFS.PropertySheets import vps
from OFS.ZDOM import ElementWithAttributes
class PropertyManager(ExtensionClass.Base, ZDOM.ElementWithAttributes):
class PropertyManager(Base, ElementWithAttributes):
"""
The PropertyManager mixin class provides an object with
......@@ -170,7 +170,7 @@ class PropertyManager(ExtensionClass.Base, ZDOM.ElementWithAttributes):
def _setPropValue(self, id, value):
self._wrapperCheck(value)
if type(value) == ListType:
if type(value) == list:
value = tuple(value)
setattr(self,id,value)
......
......@@ -14,34 +14,36 @@
$Id$
"""
import time, App.Management, Globals, sys
from webdav.interfaces import IWriteLock
from ZPublisher.Converters import type_converters
from Globals import InitializeClass
from Globals import DTMLFile, MessageDialog
from cgi import escape
import time
import sys
from AccessControl.Permissions import access_contents_information
from AccessControl.Permissions import manage_properties
from AccessControl.Permissions import view_management_screens
from AccessControl.SecurityInfo import ClassSecurityInfo
from AccessControl.SecurityManagement import getSecurityManager
from Acquisition import aq_base
from Acquisition import aq_parent
from Acquisition import Implicit, Explicit
from App.Common import rfc1123_date, iso8601_date
from webdav.common import urlbase
from App.class_init import default__class_init__ as InitializeClass
from App.Common import iso8601_date
from App.Common import rfc1123_date
from App.Dialogs import MessageDialog
from App.Management import Tabs
from App.special_dtml import DTMLFile
from ExtensionClass import Base
from Globals import Persistent
from Persistence import Persistent
from Traversable import Traversable
from AccessControl import ClassSecurityInfo
from AccessControl.Permissions import access_contents_information
from AccessControl.Permissions import manage_properties
from AccessControl.Permissions import view_management_screens
from AccessControl import getSecurityManager
from webdav.common import isDavCollection
from zExceptions import BadRequest, Redirect
from cgi import escape
from types import ListType
# DM: we would like to import this from somewhere
BadRequestException= 'Bad Request'
from webdav.common import urlbase
from webdav.interfaces import IWriteLock
from zExceptions import BadRequest
from zExceptions import Redirect
from ZPublisher.Converters import type_converters
class View(App.Management.Tabs, Base):
class View(Tabs, Base):
"""A view of an object, typically used for management purposes
This class provides bits of management framework needed by propertysheets
......@@ -215,7 +217,7 @@ class PropertySheet(Traversable, Persistent, Implicit):
else: value=[]
# bleah - can't change kw name in api, so use ugly workaround.
if sys.modules['__builtin__'].type(value) == ListType:
if sys.modules['__builtin__'].type(value) == list:
value = tuple(value)
setattr(self, id, value)
......@@ -242,7 +244,7 @@ class PropertySheet(Traversable, Persistent, Implicit):
props.append(prop)
pself._properties=tuple(props)
if type(value) == ListType:
if type(value) == list:
value = tuple(value)
setattr(self.v_self(), id, value)
......@@ -409,7 +411,7 @@ class PropertySheet(Traversable, Persistent, Implicit):
# Web interface
manage=DTMLFile('dtml/properties', globals())
manage = DTMLFile('dtml/properties', globals())
security.declareProtected(manage_properties, 'manage_propertiesForm')
def manage_propertiesForm(self, URL1):
......@@ -614,7 +616,7 @@ class DAVProperties(Virtual, PropertySheet, View):
InitializeClass(DAVProperties)
class PropertySheets(Traversable, Implicit, App.Management.Tabs):
class PropertySheets(Traversable, Implicit, Tabs):
"""A tricky container to keep property sets from polluting
an object's direct attribute namespace."""
......@@ -708,7 +710,8 @@ class PropertySheets(Traversable, Implicit, App.Management.Tabs):
'''delete all sheets identified by *ids*.'''
for id in ids:
if not self.isDeletable(id):
raise BadRequestException, 'attempt to delete undeletable property sheet: ' + id
raise BadRequest(
'attempt to delete undeletable property sheet: ' + id)
self.delPropertySheet(id)
if REQUEST is not None:
REQUEST.RESPONSE.redirect('%s/manage' % self.absolute_url())
......@@ -723,7 +726,7 @@ class PropertySheets(Traversable, Implicit, App.Management.Tabs):
# Management interface:
security.declareProtected(view_management_screens, 'manage')
manage=Globals.DTMLFile('dtml/propertysheets', globals())
manage = DTMLFile('dtml/propertysheets', globals())
def manage_options(self):
"""Return a manage option data structure for me instance
......
......@@ -21,42 +21,59 @@ $Id$
"""
import inspect
import marshal
import re
import sys
import time
import warnings
import marshal, re, sys, time
import AccessControl.Role, AccessControl.Owned, App.Common
import Globals, App.Management, Acquisition, App.Undo
from Globals import InitializeClass
from AccessControl import ClassSecurityInfo
from AccessControl import getSecurityManager, Unauthorized
from AccessControl.SecurityInfo import ClassSecurityInfo
from AccessControl.SecurityManagement import getSecurityManager
from AccessControl.Owned import Owned
from AccessControl.Permissions import view as View
from AccessControl.Role import RoleManager
from AccessControl.unauthorized import Unauthorized
from AccessControl.ZopeSecurityPolicy import getRoles
from Acquisition import aq_base, aq_parent, aq_inner, aq_acquire
from Acquisition import Acquired
from Acquisition import aq_acquire
from Acquisition import aq_base
from Acquisition import aq_inner
from Acquisition import aq_parent
from Acquisition import Implicit
from App.Management import Tabs
from App.class_init import default__class_init__ as InitializeClass
from App.special_dtml import HTML
from App.special_dtml import DTMLFile
from App.Undo import UndoSupport
from ComputedAttribute import ComputedAttribute
from DocumentTemplate.html_quote import html_quote
from DocumentTemplate.ustr import ustr
from ExtensionClass import Base
from Persistence import Persistent
from webdav.Resource import Resource
from zExceptions import Redirect, upgradeException
from zExceptions import Redirect
from zExceptions import upgradeException
from zExceptions.ExceptionFormatter import format_exception
from zope.interface import implements
import ZDOM
from CopySupport import CopySource
from interfaces import IItem
from interfaces import IItemWithName
from interfaces import ISimpleItem
from Traversable import Traversable
HTML=Globals.HTML
from OFS.interfaces import IItem
from OFS.interfaces import IItemWithName
from OFS.interfaces import ISimpleItem
from OFS.CopySupport import CopySource
from OFS.Traversable import Traversable
from OFS.ZDOM import Element
import logging
logger = logging.getLogger()
class Item(Base, Resource, CopySource, App.Management.Tabs, Traversable,
ZDOM.Element,
AccessControl.Owned.Owned,
App.Undo.UndoSupport,
class Item(Base,
Resource,
CopySource,
Tabs,
Traversable,
Element,
Owned,
UndoSupport,
):
"""A common base class for simple, non-container objects."""
......@@ -115,14 +132,14 @@ class Item(Base, Resource, CopySource, App.Management.Tabs, Traversable,
__propsets__=()
manage_options=(
App.Undo.UndoSupport.manage_options
+AccessControl.Owned.Owned.manage_options
+({'label': 'Interfaces',
'action': 'manage_interfaces'},)
UndoSupport.manage_options
+ Owned.manage_options
+ ({'label': 'Interfaces',
'action': 'manage_interfaces'},)
)
# Attributes that must be acquired
REQUEST=Acquisition.Acquired
REQUEST = Acquired
# Allow (reluctantly) access to unprotected attributes
__allow_access_to_unprotected_subobjects__=1
......@@ -159,7 +176,7 @@ class Item(Base, Resource, CopySource, App.Management.Tabs, Traversable,
# My sub-objects as used by the tree tag
return ()
_manage_editedDialog=Globals.DTMLFile('dtml/editedDialog', globals())
_manage_editedDialog = DTMLFile('dtml/editedDialog', globals())
def manage_editedDialog(self, REQUEST, **args):
return apply(self._manage_editedDialog,(self, REQUEST), args)
......@@ -358,10 +375,11 @@ class Item(Base, Resource, CopySource, App.Management.Tabs, Traversable,
In the case of non-Foldoid objects, the listing should contain one
object, the object itself.
"""
from App.Common import is_acquired
# check to see if we are being acquiring or not
ob=self
while 1:
if App.Common.is_acquired(ob):
if is_acquired(ob):
raise ValueError('FTP List not supported on acquired objects')
if not hasattr(ob,'aq_parent'):
break
......@@ -449,9 +467,10 @@ def pretty_tb(t, v, tb, as_html=1):
return tb
class SimpleItem(Item, Globals.Persistent,
Acquisition.Implicit,
AccessControl.Role.RoleManager,
class SimpleItem(Item,
Persistent,
Implicit,
RoleManager,
):
# Blue-plate special, Zope Masala
......
......@@ -17,22 +17,27 @@ $Id$
from urllib import quote
from Globals import InitializeClass
from AccessControl import ClassSecurityInfo
from AccessControl import getSecurityManager
from AccessControl import Unauthorized
from AccessControl.SecurityInfo import ClassSecurityInfo
from AccessControl.SecurityManagement import getSecurityManager
from AccessControl.unauthorized import Unauthorized
from AccessControl.ZopeGuards import guarded_getattr
from Acquisition import Acquired, aq_inner, aq_parent, aq_acquire, aq_base
from Acquisition import Acquired
from Acquisition import aq_acquire
from Acquisition import aq_base
from Acquisition import aq_inner
from Acquisition import aq_parent
from Acquisition.interfaces import IAcquirer
from App.class_init import default__class_init__ as InitializeClass
from OFS.interfaces import ITraversable
from zExceptions import NotFound
from ZODB.POSException import ConflictError
from OFS.interfaces import ITraversable
import webdav
from zope.interface import implements, Interface
from zope.interface import implements
from zope.interface import Interface
from zope.component import queryMultiAdapter
from zope.traversing.interfaces import TraversalError
from zope.traversing.namespace import nsParse, namespaceLookup
from zope.traversing.namespace import namespaceLookup
from zope.traversing.namespace import nsParse
_marker = object()
......@@ -138,6 +143,7 @@ class Traversable:
If true, then all of the objects along the path are validated with
the security machinery. Usually invoked using restrictedTraverse().
"""
from webdav.NullResource import NullResource
if not path:
return self
......@@ -245,8 +251,7 @@ class Traversable:
# The item lookup may return a NullResource,
# if this is the case we save it and return it
# if all other lookups fail.
if isinstance(next,
webdav.NullResource.NullResource):
if isinstance(next, NullResource):
resource = next
raise KeyError(name)
except AttributeError:
......
......@@ -13,20 +13,21 @@
"""
Objects for packages that have been uninstalled.
"""
import SimpleItem, Globals, Acquisition
from Acquisition import Acquired
import Persistence
from thread import allocate_lock
from cgi import escape
from logging import getLogger
from thread import allocate_lock
from Acquisition import Acquired
from Acquisition import Explicit
from App.special_dtml import DTMLFile
from OFS.SimpleItem import Item
from Persistence import Overridable
broken_klasses={}
broken_klasses_lock = allocate_lock()
LOG = getLogger('OFS.Uninstalled')
class BrokenClass(Acquisition.Explicit, SimpleItem.Item,
Persistence.Overridable):
class BrokenClass(Explicit, Item, Overridable):
_p_changed=0
meta_type='Broken Because Product is Gone'
icon='p_/broken'
......@@ -47,9 +48,9 @@ class BrokenClass(Acquisition.Explicit, SimpleItem.Item,
return BrokenClass.inheritedAttribute('__getattr__')(self, name)
raise AttributeError, escape(name)
manage=Globals.DTMLFile('dtml/brokenEdit',globals())
manage_main=Globals.DTMLFile('dtml/brokenEdit',globals())
manage_workspace=Globals.DTMLFile('dtml/brokenEdit',globals())
manage = DTMLFile('dtml/brokenEdit',globals())
manage_main = DTMLFile('dtml/brokenEdit',globals())
manage_workspace = DTMLFile('dtml/brokenEdit',globals())
def Broken(self, oid, pair):
......
......@@ -15,12 +15,13 @@ DOM implementation in ZOPE : Read-Only methods
All standard Zope objects support DOM to a limited extent.
"""
import Acquisition
from AccessControl.SecurityInfo import ClassSecurityInfo
from AccessControl.Permissions import access_contents_information
from Acquisition import Explicit
from Acquisition import Implicit
from Acquisition import aq_base
from Acquisition import aq_parent
from Globals import InitializeClass
from AccessControl import ClassSecurityInfo
from AccessControl.Permissions import access_contents_information
from App.class_init import default__class_init__ as InitializeClass
# Node type codes
......@@ -167,7 +168,7 @@ class Node:
InitializeClass(Node)
class Document(Acquisition.Explicit, Node):
class Document(Explicit, Node):
"""
Document Interface
"""
......@@ -534,7 +535,7 @@ class NamedNodeMap:
return None
class Attr(Acquisition.Implicit, Node):
class Attr(Implicit, Node):
"""
Attr interface - The Attr interface represents an attriubte in an
Element object. Attr objects inherit the Node Interface
......
......@@ -11,11 +11,10 @@
#
##############################################################################
from Globals import InitializeClass
from AccessControl import ClassSecurityInfo
from AccessControl.SecurityInfo import ClassSecurityInfo
from App.class_init import default__class_init__ as InitializeClass
from App.ImageFile import ImageFile
class misc_:
"Miscellaneous product information"
security = ClassSecurityInfo()
......
......@@ -16,34 +16,36 @@
$Id: BTreeFolder2.py,v 1.27 2004/03/17 22:49:25 urbanape Exp $
"""
import sys
from cgi import escape
from urllib import quote
from random import randint
from types import StringType
from logging import getLogger
from random import randint
import sys
from urllib import quote
import Globals
from Globals import DTMLFile
from Globals import Persistent
from AccessControl.SecurityInfo import ClassSecurityInfo
from AccessControl.SecurityManagement import getSecurityManager
from AccessControl.Permissions import access_contents_information
from AccessControl.Permissions import view_management_screens
from Acquisition import aq_base
from BTrees.OOBTree import OOBTree
from BTrees.OIBTree import OIBTree, union
from App.class_init import default__class_init__ as InitializeClass
from App.special_dtml import DTMLFile
from BTrees.Length import Length
from ZODB.POSException import ConflictError
from OFS.ObjectManager import BadRequestException, BeforeDeleteException
from BTrees.OIBTree import OIBTree
from BTrees.OIBTree import union
from BTrees.OOBTree import OOBTree
from OFS.event import ObjectWillBeAddedEvent
from OFS.event import ObjectWillBeRemovedEvent
from OFS.Folder import Folder
from AccessControl import getSecurityManager, ClassSecurityInfo
from AccessControl.Permissions import access_contents_information, \
view_management_screens
from OFS.ObjectManager import BadRequestException
from OFS.ObjectManager import BeforeDeleteException
from OFS.subscribers import compatibilityCall
from Persistence import Persistent
from Products.ZCatalog.Lazy import LazyMap
from ZODB.POSException import ConflictError
from zope.event import notify
from zope.app.container.contained import ObjectAddedEvent
from zope.app.container.contained import ObjectRemovedEvent
from zope.app.container.contained import notifyContainerModified
from OFS.event import ObjectWillBeAddedEvent
from OFS.event import ObjectWillBeRemovedEvent
import OFS.subscribers
LOG = getLogger('BTreeFolder2')
......@@ -346,7 +348,7 @@ class BTreeFolder2Base (Persistent):
if spec is None:
spec = mti.keys() #all meta types
if isinstance(spec, StringType):
if isinstance(spec, str):
spec = [spec]
set = None
for meta_type in spec:
......@@ -448,7 +450,7 @@ class BTreeFolder2Base (Persistent):
notify(ObjectAddedEvent(ob, self, id))
notifyContainerModified(self)
OFS.subscribers.compatibilityCall('manage_afterAdd', ob, ob, self)
compatibilityCall('manage_afterAdd', ob, ob, self)
return id
......@@ -456,7 +458,7 @@ class BTreeFolder2Base (Persistent):
def _delObject(self, id, dp=1, suppress_events=False):
ob = self._getOb(id)
OFS.subscribers.compatibilityCall('manage_beforeDelete', ob, ob, self)
compatibilityCall('manage_beforeDelete', ob, ob, self)
if not suppress_events:
notify(ObjectWillBeRemovedEvent(ob, self, id))
......@@ -519,7 +521,7 @@ class BTreeFolder2Base (Persistent):
return res
Globals.InitializeClass(BTreeFolder2Base)
InitializeClass(BTreeFolder2Base)
class BTreeFolder2 (BTreeFolder2Base, Folder):
......@@ -532,5 +534,5 @@ class BTreeFolder2 (BTreeFolder2Base, Folder):
BTreeFolder2Base._checkId(self, id, allow_dup)
Globals.InitializeClass(BTreeFolder2)
InitializeClass(BTreeFolder2)
......@@ -10,24 +10,36 @@
# FOR A PARTICULAR PURPOSE
#
##############################################################################
"""External Method Product
This product provides support for external methods, which allow
domain-specific customization of web environments.
"""
__version__='$Revision: 1.52 $'[11:-2]
from Globals import Persistent, DTMLFile, MessageDialog, HTML
import OFS.SimpleItem, Acquisition
from Globals import InitializeClass
from AccessControl import ClassSecurityInfo
import os
import stat
import sys
import traceback
from AccessControl.Permissions import change_external_methods
from AccessControl.Permissions import view_management_screens
from AccessControl.Permissions import view as View
import AccessControl.Role, sys, os, stat, traceback
from AccessControl.Role import RoleManager
from AccessControl.SecurityInfo import ClassSecurityInfo
from Acquisition import Acquired
from Acquisition import Explicit
from App.class_init import default__class_init__ as InitializeClass
from App.Dialogs import MessageDialog
from App.Extensions import getObject
from App.Extensions import getPath
from App.Extensions import FuncCode
from App.special_dtml import DTMLFile
from App.special_dtml import HTML
import Globals # for data
from OFS.SimpleItem import Item
from OFS.SimpleItem import pretty_tb
from App.Extensions import getObject, getPath, FuncCode
from Globals import DevelopmentMode
from Persistence import Persistent
from App.Management import Navigation
from ComputedAttribute import ComputedAttribute
......@@ -66,8 +78,8 @@ def manage_addExternalMethod(self, id, title, module, function, REQUEST=None):
if REQUEST is not None:
return self.manage_main(self,REQUEST)
class ExternalMethod(OFS.SimpleItem.Item, Persistent, Acquisition.Explicit,
AccessControl.Role.RoleManager, Navigation):
class ExternalMethod(Item, Persistent, Explicit,
RoleManager, Navigation):
"""Web-callable functions that encapsulate external python functions.
The function is defined in an external file. This file is treated
......@@ -93,9 +105,9 @@ class ExternalMethod(OFS.SimpleItem.Item, Persistent, Acquisition.Explicit,
func_code = ComputedAttribute(lambda self: self.getFuncCode())
ZopeTime=Acquisition.Acquired
HelpSys=Acquisition.Acquired
manage_page_header=Acquisition.Acquired
ZopeTime = Acquired
HelpSys = Acquired
manage_page_header = Acquired
manage_options=(
(
......@@ -104,8 +116,8 @@ class ExternalMethod(OFS.SimpleItem.Item, Persistent, Acquisition.Explicit,
{'label':'Test', 'action':'',
'help':('ExternalMethod','External-Method_Try-It.stx')},
)
+OFS.SimpleItem.Item.manage_options
+AccessControl.Role.RoleManager.manage_options
+ Item.manage_options
+ RoleManager.manage_options
)
def __init__(self, id, title, module, function):
......@@ -162,7 +174,7 @@ class ExternalMethod(OFS.SimpleItem.Item, Persistent, Acquisition.Explicit,
self._v_f=self.getFunction(1)
self._v_last_read=ts
if DevelopmentMode:
if Globals.DevelopmentMode:
# In development mode we do an automatic reload
# if the module code changed
def getFuncDefaults(self):
......@@ -218,7 +230,7 @@ class ExternalMethod(OFS.SimpleItem.Item, Persistent, Acquisition.Explicit,
"external method could not be called " \
"because the file does not exist"
if DevelopmentMode:
if Globals.DevelopmentMode:
self.reloadIfChanged()
if hasattr(self, '_v_f'):
......
......@@ -26,13 +26,14 @@ from zope.interface import Interface
from zope.component.zcml import handler
from zope.component.interface import provideInterface
from zope.configuration.exceptions import ConfigurationError
from zope.publisher.interfaces.browser import IBrowserRequest, \
IDefaultBrowserLayer
from zope.publisher.interfaces.browser import IBrowserRequest
from zope.publisher.interfaces.browser import IDefaultBrowserLayer
import zope.app.publisher.browser.viewmeta
import zope.app.pagetemplate.simpleviewclass
from zope.app.publisher.browser.viewmeta import (providesCallable,
_handle_menu, _handle_for)
from zope.app.publisher.browser.viewmeta import providesCallable
from zope.app.publisher.browser.viewmeta import _handle_menu
from zope.app.publisher.browser.viewmeta import _handle_for
from Products.Five.browser import BrowserView
from Products.Five.browser.resource import FileResourceFactory
......@@ -41,10 +42,12 @@ from Products.Five.browser.resource import PageTemplateResourceFactory
from Products.Five.browser.resource import DirectoryResourceFactory
from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
from Products.Five.metaclass import makeClass
from Products.Five.security import getSecurityInfo, protectClass, protectName
from Products.Five.security import getSecurityInfo
from Products.Five.security import protectClass
from Products.Five.security import protectName
from Products.Five.security import CheckerPrivateId
from Globals import InitializeClass as initializeClass
from App.class_init import default__class_init__ as initializeClass
def page(_context, name, permission, for_,
layer=IDefaultBrowserLayer, template=None, class_=None,
......
......@@ -15,8 +15,8 @@
$Id$
"""
import ExtensionClass
from Globals import InitializeClass as initializeClass
from App.class_init import default__class_init__ as InitializeClass
from ExtensionClass import Base
import zope.component
from zope.interface import Interface
......@@ -67,7 +67,7 @@ class FiveFormDirective(BaseFormDirective):
def _processWidgets(self):
if self._widgets:
customWidgetsObject = makeClass(
'CustomWidgetsMixin', (ExtensionClass.Base,), self._widgets)
'CustomWidgetsMixin', (Base,), self._widgets)
self.bases = self.bases + (customWidgetsObject,)
class EditFormDirective(FiveFormDirective):
......
......@@ -23,7 +23,7 @@ from zope.security.management import thread_local
from zope.security.simplepolicies import ParanoidSecurityPolicy
from AccessControl import ClassSecurityInfo, getSecurityManager
from Globals import InitializeClass as initializeClass
from App.class_init import default__class_init__ as initializeClass
CheckerPublicId = 'zope.Public'
CheckerPrivateId = 'zope2.Private'
......
......@@ -95,7 +95,7 @@ def test_security_equivalence():
... '''
>>> zcml.load_string(configure_zcml)
>>> from Globals import InitializeClass
>>> from App.class_init import default__class_init__ as InitializeClass
>>> InitializeClass(Dummy2)
Now we compare their access controls:
......
......@@ -16,6 +16,7 @@
$Id$
"""
import os
from zope.app.publisher.browser import viewmeta
from zope.component import zcml
from zope.configuration.exceptions import ConfigurationError
......@@ -26,8 +27,10 @@ from zope.publisher.interfaces.browser import IBrowserView
from zope.publisher.interfaces.browser import IDefaultBrowserLayer
from zope.viewlet import interfaces
from Globals import InitializeClass as initializeClass
from Products.Five.security import protectClass, protectName
from App.class_init import default__class_init__ as initializeClass
from App.special_dtml import DTMLFile
from Products.Five.security import protectClass
from Products.Five.security import protectName
from Products.Five.viewlet import manager
from Products.Five.viewlet import viewlet
......
This diff is collapsed.
......@@ -10,14 +10,15 @@
# FOR A PARTICULAR PURPOSE
#
##############################################################################
import Globals, AccessControl.User
from Globals import Persistent
from Globals import InitializeClass
from AccessControl import ClassSecurityInfo
from AccessControl.SecurityInfo import ClassSecurityInfo
import AccessControl.User
from App.class_init import default__class_init__ as InitializeClass
from App.special_dtml import HTMLFile
from Acquisition import Implicit
from OFS import SimpleItem
from Persistence import Persistent
manage_addPrincipiaDraftForm=Globals.HTMLFile('dtml/draftAdd',globals())
manage_addPrincipiaDraftForm = HTMLFile('dtml/draftAdd',globals())
def manage_addPrincipiaDraft(self, id, baseid, PATH_INFO, REQUEST=None):
"Add a draft object"
self._setObject(id, Draft(id, baseid, PATH_INFO))
......@@ -69,21 +70,28 @@ class Draft(Persistent, Implicit, SimpleItem.Item):
self.id,
))
def __bobo_traverse__(self, REQUEST, name):
def _getVersionBase(self):
import Globals # for data
versionbase = getattr(Globals, 'VersionBase', {})
return versionbase.get(self._version)
def _bobo_traverse__(self, REQUEST, name):
if name[-9:]=='__draft__': return getattr(self, name)
try: db=self._p_jar.db()
try:
db = self._p_jar.db()
except:
# BoboPOS 2
jar = Globals.VersionBase[self._version].jar
vb = self._getVersionBase()
jar = vb and vb.jar
else:
# ZODB 3
jar = db.open(self._version)
cleanup = Cleanup(jar)
REQUEST[Cleanup]=cleanup
dself=getdraft(self, jar)
ref=getattr(dself.aq_parent.aq_base,dself._refid).aq_base.__of__(dself)
......@@ -94,14 +102,15 @@ class Draft(Persistent, Implicit, SimpleItem.Item):
try: db=self._p_jar.db()
except:
# BoboPOS 2
return Globals.VersionBase[self._version].nonempty()
vb = self._getVersionBase()
return vb and vb.nonempty()
else:
# ZODB 3
return not db.versionEmpty(self._version)
security.declareProtected('Approve draft changes',
'manage_approve__draft__')
manage_approve__draft__=Globals.HTMLFile('dtml/draftApprove', globals())
manage_approve__draft__ = HTMLFile('dtml/draftApprove', globals())
security.declareProtected('Approve draft changes',
'manage_Save__draft__')
......@@ -110,7 +119,8 @@ class Draft(Persistent, Implicit, SimpleItem.Item):
try: db=self._p_jar.db()
except:
# BoboPOS 2
Globals.VersionBase[self._version].commit(remark)
vb = self._getVersionBase()
vb.commit(remark)
else:
# ZODB 3
s=self._version
......@@ -128,7 +138,8 @@ class Draft(Persistent, Implicit, SimpleItem.Item):
try: db=self._p_jar.db()
except:
# BoboPOS 2
Globals.VersionBase[self._version].abort()
vb = self._getVersionBase()
vb.abort()
else:
# ZODB 3
db.abortVersion(self._version)
......
......@@ -14,28 +14,29 @@
__version__='$Revision: 1.55 $'[11:-2]
import Globals, time
from AccessControl.Role import RoleManager
from Globals import MessageDialog
from Globals import Persistent
from Globals import InitializeClass
from AccessControl import ClassSecurityInfo
from cgi import escape
import time
from AccessControl.Permissions import change_versions
from AccessControl.Permissions import join_leave_versions
from AccessControl.Permissions import save_discard_version_changes
from AccessControl.Permissions import view_management_screens
from AccessControl.Role import RoleManager
from AccessControl.SecurityInfo import ClassSecurityInfo
from Acquisition import Implicit
from OFS.SimpleItem import Item
from Globals import HTML
from App.class_init import default__class_init__ as InitializeClass
from App.Dialogs import MessageDialog
from App.special_dtml import DTMLFile
from App.special_dtml import HTML
from OFS.SimpleItem import Item
from Persistence import Persistent
from OFS.ObjectManager import BeforeDeleteException
from cgi import escape
import transaction
class VersionException(BeforeDeleteException): pass
class VersionException(BeforeDeleteException):
pass
manage_addVersionForm=Globals.DTMLFile('dtml/versionAdd', globals())
manage_addVersionForm = DTMLFile('dtml/versionAdd', globals())
def manage_addVersion(self, id, title, REQUEST=None):
""" """
......@@ -77,23 +78,32 @@ class Version(Persistent,Implicit,RoleManager,Item):
self.title=title
security.declareProtected(join_leave_versions, 'manage_main')
manage_main=Globals.DTMLFile('dtml/version', globals())
manage_main = DTMLFile('dtml/version', globals())
security.declareProtected(save_discard_version_changes, 'manage_end')
manage_end=Globals.DTMLFile('dtml/versionEnd', globals())
manage_end = DTMLFile('dtml/versionEnd', globals())
security.declareProtected(view_management_screens, 'manage_editForm')
manage_editForm =Globals.DTMLFile('dtml/versionEdit', globals())
manage_editForm = DTMLFile('dtml/versionEdit', globals())
def _getVersionBaseCookie(self):
import Globals # for data
versionbase = getattr(Globals, 'VersionBase', {})
return versionbase.get(self.cookie)
def title_and_id(self):
r=Version.inheritedAttribute('title_and_id')(self)
try: db=self._p_jar.db()
r = Version.inheritedAttribute('title_and_id')(self)
try:
db = self._p_jar.db()
except:
# BoboPOS 2
if Globals.VersionBase[self.cookie].nonempty(): return '%s *' % r
vbc = self._getVersionBaseCookie()
if vbc and vbc.nonempty():
return '%s *' % r
else:
# ZODB 3
if not db.versionEmpty(self.cookie): return '%s *' % r
if not db.versionEmpty(self.cookie):
return '%s *' % r
return r
......@@ -116,7 +126,9 @@ class Version(Persistent,Implicit,RoleManager,Item):
security.declareProtected(join_leave_versions, 'enter')
def enter(self, REQUEST, RESPONSE):
"""Begin working in a version"""
"""Begin working in a version.
"""
import Globals
RESPONSE.setCookie(
Globals.VersionNameName, self.cookie,
path=(REQUEST['BASEPATH1'] or '/'),
......@@ -134,7 +146,9 @@ class Version(Persistent,Implicit,RoleManager,Item):
security.declareProtected(join_leave_versions, 'leave')
def leave(self, REQUEST, RESPONSE):
"""Temporarily stop working in a version"""
"""Temporarily stop working in a version
"""
import Globals
RESPONSE.setCookie(
Globals.VersionNameName,'No longer active',
expires="Mon, 25-Jan-1999 23:59:59 GMT",
......@@ -159,10 +173,13 @@ class Version(Persistent,Implicit,RoleManager,Item):
security.declareProtected(save_discard_version_changes, 'save')
def save(self, remark, REQUEST=None):
"""Make version changes permanent"""
try: db=self._p_jar.db()
try:
db = self._p_jar.db()
except:
# BoboPOS 2
Globals.VersionBase[self.cookie].commit(remark)
vbc = self._getVersionBaseCookie()
if vbc:
vbc.commit(remark)
else:
# ZODB 3
s=self.cookie
......@@ -177,10 +194,13 @@ class Version(Persistent,Implicit,RoleManager,Item):
security.declareProtected(save_discard_version_changes, 'discard')
def discard(self, remark='', REQUEST=None):
'Discard changes made during the version'
try: db=self._p_jar.db()
try:
db = self._p_jar.db()
except:
# BoboPOS 2
Globals.VersionBase[self.cookie].abort()
vbc = self._getVersionBaseCookie()
if vbc:
vbc.abort()
else:
# ZODB 3
transaction.get().note(remark)
......@@ -190,10 +210,12 @@ class Version(Persistent,Implicit,RoleManager,Item):
REQUEST['RESPONSE'].redirect(REQUEST['URL1']+'/manage_main')
def nonempty(self):
try: db=self._p_jar.db()
try:
db = self._p_jar.db()
except:
# BoboPOS 2
return Globals.VersionBase[self.cookie].nonempty()
vbc = self._getVersionBaseCookie()
return vbc and vbc.nonempty()
else:
# ZODB 3
return not db.versionEmpty(self.cookie)
......@@ -212,6 +234,7 @@ class Version(Persistent,Implicit,RoleManager,Item):
self.cookie='/'.join(self.getPhysicalPath())
def manage_beforeDelete(self, item, container):
import Globals
if self.nonempty():
raise VersionException(
'Attempt to %sdelete a non-empty version.<br />' %
......
......@@ -14,8 +14,11 @@
import os
from logging import getLogger
import AccessControl
from Globals import package_home, InitializeClass, DevelopmentMode
from AccessControl.SecurityInfo import ClassSecurityInfo
from AccessControl.SecurityManagement import getSecurityManager
from App.class_init import default__class_init__ as InitializeClass
from App.Common import package_home
from App.special_dtml import DTMLFile
from App.config import getConfiguration
from Acquisition import aq_parent, aq_inner, aq_get
from ComputedAttribute import ComputedAttribute
......@@ -60,7 +63,7 @@ class PageTemplateFile(SimpleItem, Script, PageTemplate, Traversable):
_default_bindings = {'name_subpath': 'traverse_subpath'}
security = AccessControl.ClassSecurityInfo()
security = ClassSecurityInfo()
security.declareProtected('View management screens',
'read', 'document_src')
......@@ -118,7 +121,7 @@ class PageTemplateFile(SimpleItem, Script, PageTemplate, Traversable):
response.setHeader('content-type', self.content_type)
# Execute the template in a new security context.
security = AccessControl.getSecurityManager()
security = getSecurityManager()
bound_names['user'] = security.getUser()
security.addContext(self)
......@@ -138,7 +141,8 @@ class PageTemplateFile(SimpleItem, Script, PageTemplate, Traversable):
return self.__name__ # Don't reveal filesystem paths
def _cook_check(self):
if self._v_last_read and not DevelopmentMode:
import Globals
if self._v_last_read and not Globals.DevelopmentMode:
return
__traceback_info__ = self.filename
try:
......
......@@ -14,25 +14,30 @@
$Id$
"""
import re
import os
import Acquisition
import re
from AccessControl.Permissions import change_page_templates
from AccessControl.Permissions import ftp_access
from AccessControl.Permissions import view
from AccessControl.Permissions import view_management_screens
from AccessControl.SecurityManagement import getSecurityManager
from AccessControl.SecurityInfo import ClassSecurityInfo
from AccessControl.ZopeGuards import safe_builtins
from Acquisition import Acquired
from Acquisition import Explicit
from Acquisition import aq_get
from Globals import ImageFile, package_home, InitializeClass
from App.class_init import default__class_init__ as InitializeClass
from App.Common import package_home
from App.ImageFile import ImageFile
from DateTime.DateTime import DateTime
from Shared.DC.Scripts.Script import Script
from Shared.DC.Scripts.Signature import FuncCode
from OFS.SimpleItem import SimpleItem
from OFS.History import Historical, html_diff
from OFS.Cache import Cacheable
from OFS.Traversable import Traversable
from OFS.PropertyManager import PropertyManager
from AccessControl import getSecurityManager, safe_builtins, ClassSecurityInfo
from AccessControl.Permissions import view, ftp_access, change_page_templates
from AccessControl.Permissions import view_management_screens
from Shared.DC.Scripts.Script import Script
from Shared.DC.Scripts.Signature import FuncCode
from webdav.Lockable import ResourceLockedError
from Products.PageTemplates.PageTemplate import PageTemplate
......@@ -40,9 +45,9 @@ from Products.PageTemplates.PageTemplateFile import PageTemplateFile
from Products.PageTemplates.PageTemplateFile import guess_type
from Products.PageTemplates.Expressions import SecureModuleImporter
from Products.PageTemplates.utils import encodingFromXMLPreamble, \
charsetFromMetaEquiv, convertToUnicode
from Products.PageTemplates.utils import encodingFromXMLPreamble
from Products.PageTemplates.utils import charsetFromMetaEquiv
from Products.PageTemplates.utils import convertToUnicode
preferred_encodings = ['utf-8', 'iso-8859-15']
if os.environ.has_key('ZPT_PREFERRED_ENCODING'):
......@@ -50,10 +55,10 @@ if os.environ.has_key('ZPT_PREFERRED_ENCODING'):
class Src(Acquisition.Explicit):
class Src(Explicit):
""" I am scary code """
PUT = document_src = Acquisition.Acquired
PUT = document_src = Acquired
index_html = None
def __before_publishing_traverse__(self, ob, request):
......
......@@ -20,12 +20,15 @@ from logging import getLogger
from datetime import date, datetime
from datetime import tzinfo, timedelta
import BTrees.Length
from BTrees.IIBTree import IISet, union, intersection, multiunion
from App.special_dtml import DTMLFile
from BTrees.IIBTree import IISet
from BTrees.IIBTree import union
from BTrees.IIBTree import intersection
from BTrees.IIBTree import multiunion
from BTrees.IOBTree import IOBTree
from BTrees.Length import Length
from BTrees.OIBTree import OIBTree
from DateTime.DateTime import DateTime
from Globals import DTMLFile
from OFS.PropertyManager import PropertyManager
from ZODB.POSException import ConflictError
from zope.interface import implements
......@@ -110,7 +113,7 @@ class DateIndex(UnIndex, PropertyManager):
""" Complete reset """
self._index = IOBTree()
self._unindex = OIBTree()
self._length = BTrees.Length.Length()
self._length = Length()
def index_object( self, documentId, obj, threshold=None ):
"""index an object, normalizing the indexed value to an integer
......
......@@ -17,12 +17,18 @@ $Id$
import os
from AccessControl import ClassSecurityInfo
from BTrees.IIBTree import IISet, IITreeSet, union, intersection, multiunion
from AccessControl.SecurityInfo import ClassSecurityInfo
from App.class_init import default__class_init__ as InitializeClass
from App.Common import package_home
from App.special_dtml import DTMLFile
from BTrees.IIBTree import IISet
from BTrees.IIBTree import IITreeSet
from BTrees.IIBTree import intersection
from BTrees.IIBTree import multiunion
from BTrees.IIBTree import union
from BTrees.IOBTree import IOBTree
import BTrees.Length
from BTrees.Length import Length
from DateTime.DateTime import DateTime
from Globals import package_home, DTMLFile, InitializeClass
from zope.interface import implements
from Products.PluginIndexes.common import safe_callable
......@@ -125,7 +131,7 @@ class DateRangeIndex(UnIndex):
self._since = IOBTree()
self._until = IOBTree()
self._unindex = IOBTree() # 'datum' will be a tuple of date ints
self._length = BTrees.Length.Length()
self._length = Length()
#
# PluggableIndexInterface implementation (XXX inherit assertions?)
......
......@@ -15,7 +15,7 @@
$Id$
"""
from Globals import DTMLFile
from App.special_dtml import DTMLFile
from Products.PluginIndexes.common.UnIndex import UnIndex
......
......@@ -15,11 +15,11 @@
$Id$
"""
from types import StringType, UnicodeType
from logging import getLogger
from BTrees.OOBTree import OOSet, difference
from Globals import DTMLFile
from BTrees.OOBTree import difference
from BTrees.OOBTree import OOSet
from App.special_dtml import DTMLFile
from Products.PluginIndexes.common import safe_callable
from Products.PluginIndexes.common.UnIndex import UnIndex
......@@ -95,8 +95,7 @@ class KeywordIndex(UnIndex):
newKeywords = getattr(obj, attr, ())
if safe_callable(newKeywords):
newKeywords = newKeywords()
if (isinstance(newKeywords, StringType)
or isinstance(newKeywords, UnicodeType)): #Python 2.1 compat isinstance
if isinstance(newKeywords, basestring): #Python 2.1 compat isinstance
return (newKeywords,)
else:
unique = {}
......
......@@ -17,12 +17,17 @@ $Id$
from logging import getLogger
from Globals import Persistent, DTMLFile
from App.special_dtml import DTMLFile
from OFS.SimpleItem import SimpleItem
from BTrees.IIBTree import IITreeSet
from BTrees.IIBTree import IISet
from BTrees.IIBTree import intersection
from BTrees.IIBTree import multiunion
from BTrees.IIBTree import union
from BTrees.IOBTree import IOBTree
from BTrees.OOBTree import OOBTree
from BTrees.IIBTree import IITreeSet, IISet, intersection, union, multiunion
from BTrees.Length import Length
from Persistence import Persistent
from zope.interface import implements
from Products.PluginIndexes.common import safe_callable
......
......@@ -10,22 +10,19 @@
# FOR A PARTICULAR PURPOSE
#
#############################################################################
from Lexicon import Lexicon
import Splitter
import re, string
import re
import string
from BTrees.IIBTree import IISet, union, IITreeSet
from BTrees.OIBTree import OIBTree
from BTrees.IOBTree import IOBTree
from BTrees.OOBTree import OOBTree
from Products.PluginIndexes.TextIndex.TextIndex import Or,Op
from Products.PluginIndexes.common.randid import randid
from types import UnicodeType
from Products.PluginIndexes.TextIndex.TextIndex import Op
from Products.PluginIndexes.TextIndex.TextIndex import Or
from Products.PluginIndexes.TextIndex.Lexicon import Lexicon
from Products.PluginIndexes.TextIndex.Splitter import getSplitter
class GlobbingLexicon(Lexicon):
"""Lexicon which supports basic globbing function ('*' and '?').
......@@ -59,7 +56,7 @@ class GlobbingLexicon(Lexicon):
self.clear()
self.useSplitter = useSplitter
self.splitterParams = extra
self.SplitterFunc = Splitter.getSplitter(self.useSplitter)
self.SplitterFunc = getSplitter(self.useSplitter)
def clear(self):
self._lexicon = OIBTree()
......@@ -253,7 +250,7 @@ class GlobbingLexicon(Lexicon):
"""
# Remove characters that are meaningful in a regex
if not isinstance(pat, UnicodeType):
if not isinstance(pat, unicode):
transTable = string.maketrans("", "")
result = string.translate(pat, transTable,
r'()&|!@#$%^{}\<>.')
......
......@@ -17,14 +17,15 @@ mapping.
"""
import Splitter
from Persistence import Persistent
from Acquisition import Implicit
from BTrees.OIBTree import OIBTree
from BTrees.IOBTree import IOBTree
from BTrees.IIBTree import IISet, IITreeSet
from BTrees.IIBTree import IISet
from BTrees.IIBTree import IITreeSet
from Persistence import Persistent
from Products.PluginIndexes.common.randid import randid
from Products.PluginIndexes.TextIndex.Splitter import getSplitter
from Products.PluginIndexes.TextIndex.Splitter import splitterNames
from types import StringType
......@@ -49,10 +50,10 @@ class Lexicon(Persistent, Implicit):
else:
self.stop_syn = stop_syn
self.useSplitter = Splitter.splitterNames[0]
self.useSplitter = splitterNames[0]
if useSplitter: self.useSplitter=useSplitter
self.splitterParams = extra
self.SplitterFunc = Splitter.getSplitter(self.useSplitter)
self.SplitterFunc = getSplitter(self.useSplitter)
def clear(self):
......@@ -126,12 +127,11 @@ class Lexicon(Persistent, Implicit):
while not inverse.insert(wid, word):
wid=randid()
if isinstance(word,StringType):
if isinstance(word, str):
self._lexicon[intern(word)] = wid
else:
self._lexicon[word] = wid
return wid
......
......@@ -15,19 +15,25 @@
$Id$
"""
import operator, warnings
import re
from cgi import escape
from types import *
from logging import getLogger
from Globals import Persistent, DTMLFile
import operator
import re
import warnings
from types import *
from Acquisition import Implicit
from App.special_dtml import DTMLFile
from OFS.SimpleItem import SimpleItem
from BTrees.IIBTree import difference
from BTrees.IIBTree import IIBTree
from BTrees.IIBTree import IIBucket
from BTrees.IIBTree import IISet
from BTrees.IIBTree import weightedIntersection
from BTrees.IOBTree import IOBTree
from BTrees.IIBTree import IIBTree, IIBucket, IISet
from BTrees.IIBTree import difference, weightedIntersection
from BTrees.OIBTree import OIBTree
from Persistence import Persistent
from zope.interface import implements
from Products.PluginIndexes.common import safe_callable
......@@ -35,8 +41,7 @@ from Products.PluginIndexes.common.ResultList import ResultList
from Products.PluginIndexes.common.util import parseIndexRequest
from Products.PluginIndexes.interfaces import IPluggableIndex
from Products.PluginIndexes.interfaces import ITextIndex
from Lexicon import Lexicon
from Products.PluginIndexes.TextIndex.Lexicon import Lexicon
LOG = getLogger('TextIndex')
......@@ -178,9 +183,10 @@ class TextIndex(Persistent, Implicit, SimpleItem):
self._index=IOBTree()
def convertScores(scores,
type=type, TupleType=TupleType, IIBTree=IIBTree
type=type,
IIBTree=IIBTree
):
if type(scores) is not TupleType and type(scores) is not IIBTree():
if type(scores) is not tuple and type(scores) is not IIBTree():
scores=IIBTree(scores)
return scores
......@@ -190,14 +196,16 @@ class TextIndex(Persistent, Implicit, SimpleItem):
self._unindex=IOBTree()
convert(_unindex, self._unindex, threshold)
def histogram(self, type=type, TupleType=type(())):
def histogram(self, type=type):
"""Return a mapping which provides a histogram of the number of
elements found at each point in the index."""
histogram = IIBucket()
for (key, value) in self._index.items():
if type(value) is TupleType: entry=1
else: entry = len(value)
if type(value) is tuple:
entry = 1
else:
entry = len(value)
histogram[entry] = histogram.get(entry, 0) + 1
return histogram
......@@ -230,7 +238,7 @@ class TextIndex(Persistent, Implicit, SimpleItem):
indexRow = index.get(entry, None)
if indexRow is not None:
if type(indexRow) is TupleType:
if type(indexRow) is tuple:
# Tuples are only used for rows which have only
# a single entry. Since we now need more, we'll
# promote it to a mapping object (dictionary).
......@@ -251,7 +259,7 @@ class TextIndex(Persistent, Implicit, SimpleItem):
if indexRow.get(documentId, -1) != score:
# score changed (or new entry)
if type(indexRow) is DictType:
if type(indexRow) is dict:
indexRow[documentId] = score
if len(indexRow) > 3:
# Big enough to give it's own database record
......@@ -281,7 +289,7 @@ class TextIndex(Persistent, Implicit, SimpleItem):
if safe_callable(source):
source = source()
if not isinstance(source, UnicodeType):
if not isinstance(source, unicode):
source = str(source)
except (AttributeError, TypeError):
......@@ -376,13 +384,13 @@ class TextIndex(Persistent, Implicit, SimpleItem):
LOG.error('unindex_object tried to unindex nonexistent'
' document, wid %s, %s' % (i,wid))
continue
if type(widScores) is TupleType:
if type(widScores) is tuple:
del index[wid]
else:
try:
del widScores[i]
if widScores:
if type(widScores) is DictType:
if type(widScores) is dict:
if len(widScores) == 1:
# convert to tuple
widScores = widScores.items()[0]
......@@ -563,17 +571,17 @@ class TextIndex(Persistent, Implicit, SimpleItem):
operandType = type(left)
if operandType is IntType:
left = self[left]
elif isinstance(left,StringType) or isinstance(left,UnicodeType):
elif isinstance(left,str) or isinstance(left,unicode):
left = self[left]
elif operandType is ListType:
elif operandType is list:
left = self.evaluate(left)
operandType = type(right)
if operandType is IntType:
right = self[right]
elif isinstance(right,StringType) or isinstance(right,UnicodeType):
elif isinstance(right,str) or isinstance(right,unicode):
right = self[right]
elif operandType is ListType:
elif operandType is list:
right = self.evaluate(right)
return (left, right)
......@@ -581,11 +589,11 @@ class TextIndex(Persistent, Implicit, SimpleItem):
def evaluate(self, query):
"""Evaluate a parsed query"""
# Strip off meaningless layers
while isinstance(query, ListType) and len(query) == 1:
while isinstance(query, list) and len(query) == 1:
query = query[0]
# If it's not a list, assume a string or number
if not isinstance(query, ListType):
if not isinstance(query, list):
return self[query]
# Now we need to loop through the query and reduce
......@@ -676,7 +684,7 @@ def parse2(q, default_operator, operator_dict=operator_dict):
i = 0
while i < len(q):
e = q[i]
if isinstance(e, ListType):
if isinstance(e, list):
q[i] = parse2(e, default_operator)
if i % 2:
q.insert(i, default_operator)
......
......@@ -15,13 +15,14 @@
$Id$
"""
from Globals import DTMLFile, MessageDialog
import AccessControl.Role
from Globals import InitializeClass
from AccessControl import ClassSecurityInfo
from AccessControl.Permissions import manage_vocabulary
from AccessControl.Permissions import query_vocabulary
from AccessControl.Role import RoleManager
from AccessControl.SecurityInfo import ClassSecurityInfo
from Acquisition import Implicit
from App.class_init import default__class_init__ as InitializeClass
from App.Dialogs import MessageDialog
from App.special_dtml import DTMLFile
from Persistence import Persistent
from OFS.SimpleItem import Item
from zope.interface import implements
......@@ -49,7 +50,7 @@ def manage_addVocabulary(self, id, title, globbing=None, extra=None,
class _extra: pass
class Vocabulary(Item, Persistent, Implicit, AccessControl.Role.RoleManager):
class Vocabulary(Item, Persistent, Implicit, RoleManager):
"""A Vocabulary is a user-managable realization of a Lexicon object.
"""
......@@ -70,8 +71,8 @@ class Vocabulary(Item, Persistent, Implicit, AccessControl.Role.RoleManager):
{'label': 'Query', 'action': 'manage_query',
'help': ('ZCatalog', 'Vocabulary_Query.stx')},
)
+Item.manage_options
+AccessControl.Role.RoleManager.manage_options
+ Item.manage_options
+ RoleManager.manage_options
)
security.declareProtected(manage_vocabulary, 'manage_main')
......
......@@ -14,14 +14,13 @@
$Id$
"""
import sys
from logging import getLogger
import sys
from ZODB.POSException import ConflictError
from BTrees.IIBTree import IITreeSet
from Persistence import Persistent
from RestrictedPython.Eval import RestrictionCapableEval
from ZODB.POSException import ConflictError
from zope.interface import implements
from Products.PluginIndexes.interfaces import IFilteredSet
......
......@@ -17,17 +17,20 @@ $Id$
from logging import getLogger
from Globals import Persistent, DTMLFile
from OFS.SimpleItem import SimpleItem
from App.special_dtml import DTMLFile
from BTrees.IIBTree import IITreeSet
from BTrees.IIBTree import intersection
from BTrees.IIBTree import union
from BTrees.OOBTree import OOBTree
from BTrees.IIBTree import IITreeSet,intersection,union
from OFS.SimpleItem import SimpleItem
from Persistence import Persistent
from zope.interface import implements
from Products.PluginIndexes.common.util import parseIndexRequest
from Products.PluginIndexes.interfaces import IPluggableIndex
from Products.PluginIndexes.interfaces import ITopicIndex
import FilteredSet
from Products.PluginIndexes.TopicIndex.FilteredSet import factory
_marker = []
LOG = getLogger('Zope.TopicIndex')
......@@ -125,8 +128,10 @@ class TopicIndex(Persistent, SimpleItem):
if self.filteredSets.has_key(filter_id):
raise KeyError,\
'A FilteredSet with this name already exists: %s' % filter_id
self.filteredSets[filter_id] = \
FilteredSet.factory(filter_id, typeFilteredSet, expr)
self.filteredSets[filter_id] = factory(filter_id,
typeFilteredSet,
expr,
)
def delFilteredSet(self, filter_id):
# Delete the FilteredSet object specified by 'filter_id'.
......
......@@ -11,9 +11,6 @@
#
##############################################################################
import common.ResultList as ResultList
import common.UnIndex as UnIndex
import PathIndex.PathIndex
import FieldIndex.FieldIndex
import KeywordIndex.KeywordIndex
......@@ -21,6 +18,9 @@ import TopicIndex.TopicIndex
import DateIndex.DateIndex
import DateRangeIndex.DateRangeIndex
from Products.PluginIndexes.common import ResultList
from Products.PluginIndexes.common import UnIndex
# BBB: TextIndex is deprecated but we don't want the warning to appear here
import warnings
warnings.filterwarnings('ignore', message='^Using TextIndex', append=1)
......
......@@ -11,19 +11,23 @@
#
##############################################################################
from BTrees.IIBTree import difference
from BTrees.IIBTree import IIBucket
from BTrees.IIBTree import weightedIntersection, weightedUnion, difference
from BTrees.OOBTree import OOSet, union
from BTrees.IIBTree import weightedIntersection
from BTrees.IIBTree import weightedUnion
from BTrees.OOBTree import OOSet
from BTrees.OOBTree import union
class ResultList:
def __init__(self, d, words, index, TupleType=type(())):
def __init__(self, d, words, index):
self._index = index
if type(words) is not OOSet: words=OOSet(words)
if type(words) is not OOSet:
words=OOSet(words)
self._words = words
if (type(d) is TupleType):
if (type(d) is tuple):
d = IIBucket((d,))
elif type(d) is not IIBucket:
d = IIBucket(d)
......@@ -37,13 +41,17 @@ class ResultList:
def __nonzero__(self):
return not not self._dict
def bucket(self): return self._dict
def bucket(self):
return self._dict
def keys(self): return self._dict.keys()
def keys(self):
return self._dict.keys()
def has_key(self, key): return self._dict.has_key(key)
def has_key(self, key):
return self._dict.has_key(key)
def items(self): return self._dict.items()
def items(self):
return self._dict.items()
def __and__(self, x):
return self.__class__(
......
......@@ -14,14 +14,16 @@
$Id$
"""
import sys
from cgi import escape
from logging import getLogger
import sys
from BTrees.IIBTree import IITreeSet, IISet, union, intersection
from BTrees.IIBTree import intersection
from BTrees.IIBTree import IITreeSet
from BTrees.IIBTree import IISet
from BTrees.IIBTree import union
from BTrees.IOBTree import IOBTree
import BTrees.Length
from BTrees.Length import Length
from BTrees.OOBTree import OOBTree
from OFS.SimpleItem import SimpleItem
from ZODB.POSException import ConflictError
......@@ -109,7 +111,7 @@ class UnIndex(SimpleItem):
if not self.indexed_attrs:
self.indexed_attrs = [id]
self._length = BTrees.Length.Length()
self._length = Length()
self.clear()
def __len__(self):
......@@ -119,7 +121,7 @@ class UnIndex(SimpleItem):
return self.id
def clear(self):
self._length = BTrees.Length.Length()
self._length = Length()
self._index = OOBTree()
self._unindex = IOBTree()
......@@ -177,7 +179,7 @@ class UnIndex(SimpleItem):
# XXX swallow KeyError because it was probably
# removed and then _length AttributeError raised
pass
if isinstance(self.__len__, BTrees.Length.Length):
if isinstance(self.__len__, Length):
self._length = self.__len__
del self.__len__
self._length.change(-1)
......@@ -210,7 +212,7 @@ class UnIndex(SimpleItem):
try:
self._length.change(1)
except AttributeError:
if isinstance(self.__len__, BTrees.Length.Length):
if isinstance(self.__len__, Length):
self._length = self.__len__
del self.__len__
self._length.change(1)
......
......@@ -14,10 +14,10 @@
$Id$
"""
from warnings import warn
from types import InstanceType
from DateTime import DateTime
from warnings import warn
from DateTime.DateTime import DateTime
class parseIndexRequest:
......
......@@ -16,27 +16,38 @@
This product provides support for Script objects containing restricted
Python code.
"""
__version__='$Revision: 1.56 $'[11:-2]
import sys, os, traceback, re, marshal, new
from logging import getLogger
from Globals import DTMLFile, MessageDialog, package_home
import AccessControl, OFS, RestrictedPython
import marshal
import new
import os
import re
import sys
import traceback
from urllib import quote
from AccessControl.requestmethod import requestmethod
from AccessControl.SecurityInfo import ClassSecurityInfo
from AccessControl.SecurityManagement import getSecurityManager
from AccessControl.ZopeGuards import get_safe_globals, guarded_getattr
from AccessControl.ZopeGuards import get_safe_globals, guarded_getattr
from Acquisition import aq_parent
from OFS.SimpleItem import SimpleItem
from App.class_init import default__class_init__ as InitializeClass
from App.Common import package_home
from App.Dialogs import MessageDialog
from App.special_dtml import DTMLFile
from DateTime.DateTime import DateTime
from urllib import quote
from webdav.Lockable import ResourceLockedError
from Shared.DC.Scripts.Script import Script, BindingsUI, defaultBindings
from AccessControl import getSecurityManager
from OFS.History import Historical, html_diff
from OFS.Cache import Cacheable
from AccessControl.ZopeGuards import get_safe_globals, guarded_getattr
from AccessControl.requestmethod import requestmethod
from OFS.History import Historical
from OFS.History import html_diff
from OFS.SimpleItem import SimpleItem
from RestrictedPython import compile_restricted_function
from Shared.DC.Scripts.Script import BindingsUI
from Shared.DC.Scripts.Script import defaultBindings
from Shared.DC.Scripts.Script import Script
from webdav.Lockable import ResourceLockedError
from zExceptions import Forbidden
import Globals
LOG = getLogger('PythonScripts')
......@@ -111,7 +122,7 @@ class PythonScript(Script, Historical, Cacheable):
self.ZBindings_edit(defaultBindings)
self._makeFunction()
security = AccessControl.ClassSecurityInfo()
security = ClassSecurityInfo()
security.declareObjectProtected('View')
security.declareProtected('View', '__call__')
......@@ -225,7 +236,7 @@ class PythonScript(Script, Historical, Cacheable):
self._newfun(marshal.loads(self._code))
def _compiler(self, *args, **kw):
return RestrictedPython.compile_restricted_function(*args, **kw)
return compile_restricted_function(*args, **kw)
def _compile(self):
bind_names = self.getBindingAssignments().getAssignedNamesInOrder()
......@@ -509,7 +520,7 @@ class PythonScript(Script, Historical, Cacheable):
return self.read()
Globals.InitializeClass(PythonScript)
InitializeClass(PythonScript)
class PythonScriptTracebackSupplement:
"""Implementation of ITracebackSupplement"""
......
......@@ -17,27 +17,46 @@ This module provides helpful functions and classes for use in Python
Scripts. It can be accessed from Python with the statement
"import Products.PythonScripts.standard"
"""
__version__='$Revision: 1.14 $'[11:-2]
from AccessControl import ModuleSecurityInfo, getSecurityManager
security = ModuleSecurityInfo()
security.declarePublic('special_formats', 'whole_dollars',
'dollars_and_cents', 'structured_text',
'restructured_text',
'sql_quote', 'html_quote', 'url_quote',
'url_quote_plus', 'newline_to_br',
'thousands_commas', 'url_unquote',
'url_unquote_plus', 'urlencode')
from DocumentTemplate.DT_Var import special_formats, \
whole_dollars, dollars_and_cents, structured_text, sql_quote, \
html_quote, url_quote, url_quote_plus, newline_to_br, thousands_commas, \
url_unquote, url_unquote_plus, restructured_text
from urllib import urlencode
from Globals import HTML
from AccessControl.DTML import RestrictedDTML
from AccessControl.SecurityInfo import ModuleSecurityInfo
from AccessControl.SecurityManagement import getSecurityManager
from App.special_dtml import HTML
from DocumentTemplate.DT_Var import special_formats
from DocumentTemplate.DT_Var import whole_dollars
from DocumentTemplate.DT_Var import dollars_and_cents
from DocumentTemplate.DT_Var import structured_text
from DocumentTemplate.DT_Var import sql_quote
from DocumentTemplate.DT_Var import html_quote
from DocumentTemplate.DT_Var import url_quote
from DocumentTemplate.DT_Var import url_quote_plus
from DocumentTemplate.DT_Var import newline_to_br
from DocumentTemplate.DT_Var import thousands_commas
from DocumentTemplate.DT_Var import url_unquote
from DocumentTemplate.DT_Var import url_unquote_plus
from DocumentTemplate.DT_Var import restructured_text
from ZPublisher.HTTPRequest import record
security = ModuleSecurityInfo()
security.declarePublic('special_formats',
'whole_dollars',
'dollars_and_cents',
'structured_text',
'restructured_text',
'sql_quote',
'html_quote',
'url_quote',
'url_quote_plus',
'newline_to_br',
'thousands_commas',
'url_unquote',
'url_unquote_plus',
'urlencode',
)
security.declarePublic('DTML')
class DTML(RestrictedDTML, HTML):
......@@ -54,9 +73,6 @@ class DTML(RestrictedDTML, HTML):
finally: security.removeContext(self)
from ZPublisher.HTTPRequest import record
security.declarePublic('Object')
# We don't expose classes directly to restricted code
class _Object(record):
......@@ -85,6 +101,7 @@ class _Object(record):
def __hash__(self):
return id(self)
security.declarePublic('Object')
def Object(**kw):
return _Object(**kw)
......
......@@ -10,30 +10,46 @@
# FOR A PARTICULAR PURPOSE
#
############################################################################
__version__='$Revision: 1.20 $'[11:-2]
import Globals
from Persistence import Persistent
from persistent import TimeStamp
from Acquisition import Implicit, aq_base, aq_parent, aq_inner
import binascii
from cgi import escape
import logging
import random
import re
import string
import sys
import time
from urllib import quote
from urlparse import urlparse
from urlparse import urlunparse
from AccessControl.Owned import Owned
from AccessControl.Role import RoleManager
from AccessControl.SecurityInfo import ClassSecurityInfo
from Acquisition import Implicit
from Acquisition import aq_base
from Acquisition import aq_parent
from Acquisition import aq_inner
from App.class_init import default__class_init__ as InitializeClass
from App.Dialogs import MessageDialog
from App.Management import Tabs
from App.special_dtml import DTMLFile
from Persistence import Persistent
from persistent import TimeStamp
from OFS.SimpleItem import Item
from OFS.ObjectManager import UNIQUE
from AccessControl import ClassSecurityInfo
import SessionInterfaces
from SessionPermissions import *
from common import DEBUG
import os, time, random, string, binascii, sys, re
from cgi import escape
from urllib import quote
from urlparse import urlparse, urlunparse
from ZPublisher.BeforeTraverse import registerBeforeTraverse, \
unregisterBeforeTraverse, queryBeforeTraverse
import logging
from ZPublisher.BeforeTraverse import registerBeforeTraverse
from ZPublisher.BeforeTraverse import unregisterBeforeTraverse
from ZPublisher.BeforeTraverse import queryBeforeTraverse
from zope.interface import implements
from Products.Sessions.SessionInterfaces import BrowserIdManagerInterface
from Products.Sessions.SessionPermissions import ACCESS_CONTENTS_PERM
from Products.Sessions.SessionPermissions import CHANGE_IDMGR_PERM
from Products.Sessions.SessionPermissions import MGMT_SCREEN_PERM
from Products.Sessions.common import DEBUG
b64_trans = string.maketrans('+/', '-.')
b64_untrans = string.maketrans('-.', '+/')
......@@ -43,7 +59,7 @@ twodotsin = re.compile('(\w*\.){2,}').search
_marker = []
constructBrowserIdManagerForm = Globals.DTMLFile('dtml/addIdManager',globals())
constructBrowserIdManagerForm = DTMLFile('dtml/addIdManager', globals())
BROWSERID_MANAGER_NAME = 'browser_id_manager'# imported by SessionDataManager
ALLOWED_BID_NAMESPACES = ('form', 'cookies', 'url')
......@@ -81,7 +97,7 @@ class BrowserIdManager(Item, Persistent, Implicit, RoleManager, Owned, Tabs):
{'label': 'Ownership', 'action':'manage_owner'}
)
implements(SessionInterfaces.BrowserIdManagerInterface)
implements(BrowserIdManagerInterface)
icon = 'misc_/Sessions/idmgr.gif'
......@@ -256,7 +272,7 @@ class BrowserIdManager(Item, Persistent, Implicit, RoleManager, Owned, Tabs):
return urlunparse((proto, host, path, params, query, frag))
security.declareProtected(MGMT_SCREEN_PERM, 'manage_browseridmgr')
manage_browseridmgr = Globals.DTMLFile('dtml/manageIdManager', globals())
manage_browseridmgr = DTMLFile('dtml/manageIdManager', globals())
security.declareProtected(CHANGE_IDMGR_PERM,
'manage_changeBrowserIdManager')
......@@ -428,7 +444,7 @@ class BrowserIdManager(Item, Persistent, Implicit, RoleManager, Owned, Tabs):
def _setId(self, id):
if id != self.id:
raise Globals.MessageDialog(
raise MessageDialog(
title='Cannot rename',
message='You cannot rename a browser id manager, sorry!',
action ='./manage_main',)
......@@ -553,4 +569,4 @@ def getNewBrowserId(randint=random.randint, maxint=99999999):
return '%08i%s' % (randint(0, maxint-1), getB64TStamp())
Globals.InitializeClass(BrowserIdManager)
InitializeClass(BrowserIdManager)
......@@ -2,13 +2,15 @@
Provide a simple method to set up Access Rules
"""
from Globals import DTMLFile, MessageDialog
from ZPublisher.BeforeTraverse import \
registerBeforeTraverse, unregisterBeforeTraverse, queryBeforeTraverse, \
NameCaller
import os
from cgi import escape
import os
from App.Dialogs import MessageDialog
from App.special_dtml import DTMLFile
from ZPublisher.BeforeTraverse import NameCaller
from ZPublisher.BeforeTraverse import queryBeforeTraverse
from ZPublisher.BeforeTraverse import registerBeforeTraverse
from ZPublisher.BeforeTraverse import unregisterBeforeTraverse
SUPPRESS_ACCESSRULE = os.environ.has_key('SUPPRESS_ACCESSRULE')
......
This diff is collapsed.
......@@ -23,9 +23,12 @@ import logging
from random import random
from thread import allocate_lock
import Globals
from AccessControl.SecurityInfo import ClassSecurityInfo
from AccessControl.SecurityManagement import getSecurityManager
from AccessControl.unauthorized import Unauthorized
from Acquisition import aq_base
from AccessControl import ClassSecurityInfo, getSecurityManager, Unauthorized
from App.class_init import default__class_init__ as InitializeClass
from App.Dialogs import MessageDialog
from OFS.SimpleItem import SimpleItem
from Products.PageTemplates.PageTemplateFile import PageTemplateFile
from zExceptions.ExceptionFormatter import format_exception
......@@ -100,7 +103,7 @@ class SiteErrorLog (SimpleItem):
def _setId(self, id):
if id != self.id:
raise Globals.MessageDialog(
raise MessageDialog(
title='Invalid Id',
message='Cannot change the id of a SiteErrorLog',
action ='./manage_main',)
......@@ -294,7 +297,7 @@ class SiteErrorLog (SimpleItem):
RESPONSE.setHeader('Content-Type', 'text/plain')
return entry['tb_text']
Globals.InitializeClass(SiteErrorLog)
InitializeClass(SiteErrorLog)
def manage_addErrorLog(dispatcher, RESPONSE=None):
......
......@@ -20,9 +20,10 @@ from BTrees.IIBTree import IIBucket
from zope.interface import implements
from Products.ZCTextIndex.IIndex import IIndex
from Products.ZCTextIndex.BaseIndex import BaseIndex, \
inverse_doc_frequency, \
scaled_int, SCALE_FACTOR
from Products.ZCTextIndex.BaseIndex import BaseIndex
from Products.ZCTextIndex.BaseIndex import inverse_doc_frequency
from Products.ZCTextIndex.BaseIndex import scaled_int
from Products.ZCTextIndex.BaseIndex import SCALE_FACTOR
class CosineIndex(BaseIndex):
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment