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.')
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())
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()
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')
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")
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')
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)
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'))
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 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')