def rootify_site(self, app, portal):
        print "Ensuring site is visible at '/'"

        if not "rootify" in app.objectIds():
            print "    Adding DTMLMethod 'rootify'..."
            app.addDTMLMethod('rootify', file="""
              <dtml-let stack="REQUEST['TraversalRequestNameStack']">
                <dtml-if "stack and stack[-1]=='zmi'">
                  <dtml-call "stack.pop()">
                  <dtml-call "REQUEST.setVirtualRoot('zmi')">
                <dtml-else>
                  <dtml-call "stack.append('%s')">
                </dtml-if>
              </dtml-let>
              """ % portal.getId())
        else:
            print "    Skipped adding DTMLMethod."

        if getAccessRule(app) != "rootify":
            print "    Adding AccessRule..."
            manage_addAccessRule(app, "rootify")
        else:
            print "    Skipped adding AccessRule."

        if not "SiteRoot" in portal.objectIds():
            print "    Adding SiteRoot..."
            manage_addSiteRoot(portal, title="SiteRoot", base="", path="/")
        else:
            print "    Skipped adding SiteRoot."

        transaction.savepoint()
 def _callFUT(self, container, REQUEST=None):
     from Products.SiteAccess.AccessRule import getAccessRule
     return getAccessRule(container, REQUEST)
 def _callFUT(self, container, REQUEST=None):
     from Products.SiteAccess.AccessRule import getAccessRule
     return getAccessRule(container, REQUEST)