Auto-create initial PloneSite instance on zope startup
[zope-bootstrap.git] / src / koehsel.policy / koehsel / policy / __init__.py
index 52f45a0..b5e70dc 100644 (file)
@@ -1,3 +1,30 @@
+import setuphandlers
+import OFS.Application
+from App.Product import doInstall
+import transaction
+from AccessControl.SecurityManagement import newSecurityManager
+import AccessControl
+from Testing.makerequest import makerequest
+
+orig_install_standards = None
+
+def install_standards(app):
+    orig_install_standards(app)
+    transaction.commit()
+
+    # Log in as 'admin' user
+    newSecurityManager(None, app.acl_users.getUser('admin'))
+    setuphandlers.appInit(makerequest(app))
+    transaction.commit()
+
+    # Back to system user
+    newSecurityManager(None, AccessControl.User.system)
+
 
 def initialize(context):
     """Initializer called when used as a Zope 2 product."""
+    global orig_install_standards
+
+    if doInstall():
+        orig_install_standards = OFS.Application.install_standards
+        OFS.Application.install_standards = install_standards