[Zope-Checkins] SVN: Zope/trunk/ move Control_Panel out of zodb
Nikolay Kim
fafhrd91 at gmail.com
Mon May 2 11:45:11 EDT 2011
Log message for revision 121511:
move Control_Panel out of zodb
Changed:
U Zope/trunk/doc/CHANGES.rst
U Zope/trunk/src/OFS/Application.py
-=-
Modified: Zope/trunk/doc/CHANGES.rst
===================================================================
--- Zope/trunk/doc/CHANGES.rst 2011-05-02 13:25:50 UTC (rev 121510)
+++ Zope/trunk/doc/CHANGES.rst 2011-05-02 15:45:10 UTC (rev 121511)
@@ -55,6 +55,8 @@
- Added `addzope2user` script, suitable for adding an admin user directly to
the root acl_users folder.
+- Remove "Control panel" object from zodb.
+
- Updated distributions:
- AccessControl = 2.13.4
Modified: Zope/trunk/src/OFS/Application.py
===================================================================
--- Zope/trunk/src/OFS/Application.py 2011-05-02 13:25:50 UTC (rev 121510)
+++ Zope/trunk/src/OFS/Application.py 2011-05-02 15:45:10 UTC (rev 121511)
@@ -50,6 +50,9 @@
LOG = getLogger('Application')
+APP_MANAGER = None
+
+
class Application(ApplicationDefaultPermissions,
ZDOM.Root,
Folder.Folder,
@@ -70,6 +73,14 @@
# Create the help system object
HelpSys = HelpSys('HelpSys')
+
+ manage_options=((
+ Folder.Folder.manage_options[0],
+ Folder.Folder.manage_options[1],
+ {'label': 'Control Panel', 'action': 'Control_Panel/manage_main'}, ) +
+ Folder.Folder.manage_options[2:]
+ )
+
p_=misc_.p_
misc_=misc_.misc_
@@ -95,12 +106,6 @@
self.__allow_groups__ = uf
self._setObject('acl_users', uf)
- # Initialize control panel
- 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:]
@@ -116,6 +121,10 @@
def __class_init__(self):
InitializeClass(self)
+ @property
+ def Control_Panel(self):
+ return APP_MANAGER.__of__(self)
+
def PrincipiaRedirect(self, destination, URL1):
"""Utility function to allow user-controlled redirects"""
if destination.find('//') >= 0:
@@ -125,7 +134,8 @@
Redirect = ZopeRedirect = PrincipiaRedirect
def __bobo_traverse__(self, REQUEST, name=None):
-
+ if name == 'Control_Panel':
+ return APP_MANAGER.__of__(self)
try:
return getattr(self, name)
except AttributeError:
@@ -279,31 +289,20 @@
self.install_virtual_hosting()
def install_cp_and_products(self):
+ global APP_MANAGER
+ APP_MANAGER = ApplicationManager()
+ APP_MANAGER._init()
+ APP_MANAGER.Products=App.Product.ProductFolder()
+
app = self.getApp()
+ app._p_activate()
- # Ensure that Control Panel exists.
- if not hasattr(app, 'Control_Panel'):
- cpl = ApplicationManager()
- cpl._init()
- app._setObject('Control_Panel', cpl)
- self.commit('Added Control_Panel')
- else:
- # Inline migration of old databases
- cp = app.Control_Panel
- ids = [i['id'] for i in cp._objects]
- if 'Versions' in ids:
- new = []
- for entry in cp._objects:
- if entry['id'] != 'Versions':
- new.append(entry)
- cp._objects = tuple(new)
- self.commit('Removed Control_Panel.Versions')
+ # Remove Control Panel.
+ if 'Control_Panel' in app.__dict__.keys():
+ del app.__dict__['Control_Panel']
+ app._objects = tuple(i for i in app._objects if i['id'] != 'Control_Panel')
+ self.commit('Removed persistent Control_Panel')
- # b/c: Ensure that a ProductFolder exists.
- if not hasattr(aq_base(app.Control_Panel), 'Products'):
- app.Control_Panel.Products=App.Product.ProductFolder()
- self.commit('Added Control_Panel.Products')
-
def install_tempfolder_and_sdc(self):
app = self.getApp()
from Products.ZODBMountPoint.MountedObject import manage_addMounts,\
More information about the Zope-Checkins
mailing list