Exemple #1
0
def importVarious(context):
    """ Import various settings.

    This provisional handler will be removed again as soon as full handlers
    are implemented for these steps.
    """
    logger = context.getLogger('various')

    # Only run step if a flag file is present
    if context.readDataFile('various.txt') is None:
        logger.debug('Nothing to import.')
        return

    site = context.getSite()

    try:
        site.manage_addPortalFolder('Members')
        addDTMLMethod(site.Members,
                      'index_html', 'Member list', '<dtml-return roster>')
        logger.info('Members folder imported.')
    except BadRequest:
        logger.warning('Importing Members folder failed.')

    site.acl_users.encrypt_passwords = False
    logger.info('Password encryption disabled.')
Exemple #2
0
def importVarious(context):
    """ Import various settings.

    This provisional handler will be removed again as soon as full handlers
    are implemented for these steps.
    """
    logger = context.getLogger('various')

    # Only run step if a flag file is present
    if context.readDataFile('various.txt') is None:
        logger.debug('Nothing to import.')
        return

    site = context.getSite()

    try:
        site.manage_addPortalFolder('Members')
        addDTMLMethod(site.Members, 'index_html', 'Member list',
                      '<dtml-return roster>')
        logger.info('Members folder imported.')
    except BadRequest:
        logger.warning('Importing Members folder failed.')

    site.acl_users.encrypt_passwords = False
    logger.info('Password encryption disabled.')
Exemple #3
0
def _create_forms(ob):
    ''' Create default forms inside ob '''
    import os
    from OFS.DTMLMethod import addDTMLMethod
    from utils import resource_string
    for fn in ('index_html', 'logged_in', 'logged_out', 'login_form',
               'standard_login_footer', 'standard_login_header'):
        data = resource_string('dtml/%s' % fn, globals())
        addDTMLMethod(ob, fn, file=data)
Exemple #4
0
def _create_forms(ob):
    ''' Create default forms inside ob '''
    import os
    from OFS.DTMLMethod import addDTMLMethod
    from utils import resource_string
    for fn in ('index_html', 'logged_in', 'logged_out', 'login_form',
                'standard_login_footer', 'standard_login_header'):
        data = resource_string('dtml/%s' % fn, globals())
        addDTMLMethod(ob, fn, file=data)
 def test_defaults_no_standard_html_header(self):
     # see LP #496961
     from OFS.DTMLMethod import addDTMLMethod
     from OFS.DTMLMethod import DTMLMethod
     dispatcher = DummyDispatcher()
     addDTMLMethod(dispatcher, 'id')
     method = dispatcher._set['id']
     self.assertTrue(isinstance(method, DTMLMethod))
     self.assertFalse('standard_html_header' in method.read())
     self.assertFalse('standard_html_footer' in method.read())
Exemple #6
0
 def test_defaults_no_standard_html_header(self):
     # see LP #496961
     from OFS.DTMLMethod import addDTMLMethod
     from OFS.DTMLMethod import DTMLMethod
     dispatcher = DummyDispatcher()
     addDTMLMethod(dispatcher, 'id')
     method = dispatcher._set['id']
     self.assertTrue(isinstance(method, DTMLMethod))
     self.assertFalse('standard_html_header' in method.read())
     self.assertFalse('standard_html_footer' in method.read())
    def testWithStandardErrorMessage(self):
        from OFS.DTMLMethod import addDTMLMethod
        from zExceptions import NotFound
        self._registerStandardErrorView()

        addDTMLMethod(self.app, 'standard_error_message', file='OOPS')

        try:
            self.assertTrue(self._callFUT(NotFound))
        finally:
            self._unregisterStandardErrorView()
Exemple #8
0
    def testWithStandardErrorMessage(self):
        from OFS.DTMLMethod import addDTMLMethod
        from zExceptions import NotFound
        self._registerStandardErrorView()

        addDTMLMethod(self.app, 'standard_error_message', file='OOPS')

        try:
            self.assertTrue(self._callFUT(NotFound))
        finally:
            self._unregisterStandardErrorView()
Exemple #9
0
def _create_forms(ob):
    ''' Create default forms inside ob '''
    import os
    from OFS.DTMLMethod import addDTMLMethod
    dtmldir = os.path.join(os.path.dirname(__file__), 'dtml')
    for fn in ('index_html', 'logged_in', 'logged_out', 'login_form',
                'standard_login_footer', 'standard_login_header'):
        filename = os.path.join(dtmldir, fn + '.dtml')
        f = open(filename, 'rt')
        try: data = f.read()
        finally: f.close()
        addDTMLMethod(ob, fn, file=data)
Exemple #10
0
def _create_forms(ob):
    ''' Create default forms inside ob '''
    import os
    from OFS.DTMLMethod import addDTMLMethod
    dtmldir = os.path.join(os.path.dirname(__file__), 'dtml')
    for fn in ('index_html', 'logged_in', 'logged_out', 'login_form',
                'standard_login_footer', 'standard_login_header'):
        filename = os.path.join(dtmldir, fn + '.dtml')
        f = open(filename, 'rt')
        try: data = f.read()
        finally: f.close()
        addDTMLMethod(ob, fn, file=data)
def checkRestricted(folder, path, method=''):
    """Perform a check by running restricted Python code."""
    traverse = "_.this.restrictedTraverse('%s')" % path
    if not method:
        body = '<dtml-call "%s()">' % traverse
    else:
        body = f'<dtml-call "{traverse}.{method}()">'

    addDTMLMethod(folder, 'ps', body=body)
    try:
        folder.ps(client=folder)
    except Unauthorized as e:
        raise AssertionError(e)
    def setUp(self):
        from OFS.DTMLMethod import addDTMLMethod
        super(DTMLMethodBrowserTests, self).setUp()

        Zope2.App.zcml.load_site(force=True)

        uf = self.app.acl_users
        uf.userFolderAddUser('manager', 'manager_pass', ['Manager'], [])
        addDTMLMethod(self.app, 'dtml_meth')

        self.browser = Testing.testbrowser.Browser()
        self.browser.login('manager', 'manager_pass')
        self.browser.open('http://localhost/dtml_meth/manage_main')
    def setUp(self):
        from OFS.DTMLMethod import addDTMLMethod
        super().setUp()

        Zope2.App.zcml.load_site(force=True)

        uf = self.app.acl_users
        uf.userFolderAddUser('manager', 'manager_pass', ['Manager'], [])
        addDTMLMethod(self.app, 'dtml_meth')

        self.browser = Testing.testbrowser.Browser()
        self.browser.login('manager', 'manager_pass')
        self.browser.open('http://localhost/dtml_meth/manage_main')
def checkRestricted(folder, path, method=''):
    """Perform a check by running restricted Python code."""
    traverse = "_.this.restrictedTraverse('%s')" % path
    if not method:
        body = '<dtml-call "%s()">' % traverse
    else:
        body = '<dtml-call "%s.%s()">' % (traverse, method)

    addDTMLMethod(folder, 'ps', body=body)
    try:
        folder.ps(client=folder)
    except Unauthorized as e:
        raise AssertionError(e)
    def testCollector2261(self):
        from OFS.DTMLMethod import addDTMLMethod

        self.app.manage_addFolder('A', '')
        addDTMLMethod(self.app, 'a', file='I am file a')
        self.app.A.manage_addFolder('B', '')
        request = self.app.REQUEST
        # this should create 'a' within /A/B containing 'bar'
        put = request.traverse('/A/B/a')
        put(request, request.RESPONSE)
        # PUT should no acquire A.a
        self.assertEqual(str(self.app.A.a), 'I am file a', 'PUT factory should not acquire content')
        # check for the newly created file
        self.assertEqual(str(self.app.A.B.a), 'bar')
Exemple #16
0
    def testCollector2261(self):
        from OFS.DTMLMethod import addDTMLMethod

        self.app.manage_addFolder('A', '')
        addDTMLMethod(self.app, 'a', file='I am file a')
        self.app.A.manage_addFolder('B', '')
        request = self.app.REQUEST
        # this should create 'a' within /A/B containing 'bar'
        put = request.traverse('/A/B/a')
        put(request, request.RESPONSE)
        # PUT should no acquire A.a
        self.assertEqual(str(self.app.A.a), 'I am file a',
                         'PUT factory should not acquire content')
        # check for the newly created file
        self.assertEqual(str(self.app.A.B.a), 'bar')
def manage_addCC(self, id, create_forms=0, REQUEST=None):
    ' '
    ob = CookieCrumbler()
    ob.id = id
    self._setObject(id, ob)
    if create_forms:
        here = package_home(globals())
        for fn in ('login_form', 'logged_in', 'logged_out'):
            filename = path.join(here, fn + '.dtml')
            f = open(filename, 'rt')
            try: data = f.read()
            finally: f.close()
            addDTMLMethod(self, fn, file=data)
    if REQUEST is not None:
        return self.manage_main(self, REQUEST)
def checkUnauthorized(folder, path, method=''):
    """Perform a check by running restricted Python code.  Expect to
    encounter an Unauthorized exception."""
    traverse = "_.this.restrictedTraverse('%s')" % path
    if not method:
        body = '<dtml-call "%s()">' % traverse
    else:
        body = '<dtml-call "%s.%s()">' % (traverse, method)
    addDTMLMethod(folder, 'ps', body=body)
    try:
        folder.ps(client=folder)
    except Unauthorized:
        pass
    else:
        raise AssertionError("Authorized but shouldn't be")
def checkUnauthorized(folder, path, method=''):
    """Perform a check by running restricted Python code.  Expect to
    encounter an Unauthorized exception."""
    traverse = "_.this.restrictedTraverse('%s')" % path
    if not method:
        body = '<dtml-call "%s()">' % traverse
    else:
        body = f'<dtml-call "{traverse}.{method}()">'
    addDTMLMethod(folder, 'ps', body=body)
    try:
        folder.ps(client=folder)
    except Unauthorized:
        pass
    else:
        raise AssertionError("Authorized but shouldn't be")
Exemple #20
0
    def setUp(self):
        from OFS.DTMLMethod import addDTMLMethod
        super(DTMLMethodBrowserTests, self).setUp()

        Zope2.App.zcml.load_site(force=True)

        uf = self.app.acl_users
        uf.userFolderAddUser('manager', 'manager_pass', ['Manager'], [])
        addDTMLMethod(self.app, 'dtml_meth')

        self.browser = Testing.testbrowser.Browser()
        self.browser.addHeader(
            'Authorization',
            'basic {}'.format(codecs.encode(
                b'manager:manager_pass', 'base64').decode()))
        self.browser.open('http://localhost/dtml_meth/manage_main')
Exemple #21
0
def manage_addCC(self, id, create_forms=0, REQUEST=None):
    ' '
    ob = CookieCrumbler()
    ob.id = id
    self._setObject(id, ob)
    if create_forms:
        import os
        from OFS.DTMLMethod import addDTMLMethod
        dtmldir = os.path.join(os.path.dirname(__file__), 'dtml')
        for fn in ('login_form', 'logged_in', 'logged_out'):
            filename = os.path.join(dtmldir, fn + '.dtml')
            f = open(filename, 'rt')
            try: data = f.read()
            finally: f.close()
            addDTMLMethod(self, fn, file=data)
    if REQUEST is not None:
        return self.manage_main(self, REQUEST)
Exemple #22
0
def manage_addCC(dispatcher, id, create_forms=0, REQUEST=None):
    ' '
    ob = CookieCrumbler()
    ob.id = id
    dispatcher._setObject(ob.getId(), ob)
    ob = getattr(dispatcher.this(), ob.getId())
    if create_forms:
        import os
        from OFS.DTMLMethod import addDTMLMethod
        dtmldir = os.path.join(os.path.dirname(__file__), 'dtml')
        for fn in ('index_html', 'logged_in', 'logged_out', 'login_form',
                   'standard_login_footer', 'standard_login_header'):
            filename = os.path.join(dtmldir, fn + '.dtml')
            f = open(filename, 'rt')
            try: data = f.read()
            finally: f.close()
            addDTMLMethod(ob, fn, file=data)
    if REQUEST is not None:
        return dispatcher.manage_main(dispatcher, REQUEST)
 def test_dtml_var(self):
     addDTMLMethod(self.app,
                   'testing',
                   file=('<dtml-sendmail mailhost="MailHost">'
                         'To: [email protected]\n'
                         'From: [email protected]\n'
                         'Subject: just called to say...\n'
                         'Date: Thu, 16 May 2019 16:04:14 -0500\n'
                         '\n'
                         'boy howdy!\n'
                         '</dtml-sendmail>'))
     self.app.testing(client=self.app)
     self.assertEqual(self.app.MailHost.sent,
                      ('To: [email protected]\n'
                       'From: [email protected]\n'
                       'Subject: just called to say...\n'
                       'Date: Thu, 16 May 2019 16:04:14 -0500\n'
                       '\n'
                       'boy howdy!\n'))
Exemple #24
0
def manage_addCC(self, id, create_forms=0, REQUEST=None):
    ' '
    ob = CookieCrumbler()
    ob.id = id
    self._setObject(id, ob)
    if create_forms:
        import os
        from OFS.DTMLMethod import addDTMLMethod
        dtmldir = os.path.join(os.path.dirname(__file__), 'dtml')
        for fn in ('login_form', 'logged_in', 'logged_out'):
            filename = os.path.join(dtmldir, fn + '.dtml')
            f = open(filename, 'rt')
            try:
                data = f.read()
            finally:
                f.close()
            addDTMLMethod(self, fn, file=data)
    if REQUEST is not None:
        return self.manage_main(self, REQUEST)
Exemple #25
0
def addCSS(container, sheetId, title, csshovering):
    """ Add DTML Method object to portal root """
    from OFS.DTMLMethod import addDTMLMethod
    addDTMLMethod(container, sheetId, title, csshovering)
def addDTMLMethod(folder, id, body=''):
    from OFS.DTMLMethod import addDTMLMethod
    if id in folder:
        del folder[id]
    addDTMLMethod(folder, id, file=body)
def addDTMLMethod(folder, id, body=''):
    from OFS.DTMLMethod import addDTMLMethod
    if id in folder:
        del folder[id]
    addDTMLMethod(folder, id, file=body)
Exemple #28
0
 def setUp(self):
     from OFS.DTMLMethod import addDTMLMethod
     super(TestTabs, self).setUp()
     self.app.REQUEST['PARENTS'] = [self.app]
     addDTMLMethod(self.folder, 'page')
 def setUp(self):
     from OFS.DTMLMethod import addDTMLMethod
     super().setUp()
     self.app.REQUEST['PARENTS'] = [self.app]
     addDTMLMethod(self.folder, 'page')