def HEAD(self, REQUEST, RESPONSE): """Retrieve resource information without a response body. """ self.dav__init(REQUEST, RESPONSE) # Note that we are willing to acquire the default document # here because what we really care about is whether doing # a GET on this collection / would yield a 200 response. view = None putils = getToolByName(self, 'plone_utils') obj, pages = putils.browserDefault(self) if pages is not None and pages: view = getattr(self, pages[0]) if isinstance(view, (MethodType, FunctionType)): # Ignore methods view = None if view is None: # Try to find a action (view) try: from Products.CMFCore.utils import _getViewFor view = _getViewFor(self) except (ImportError, Unauthorized, 'Unauthorized', 'Not Found'): pass if view is not None: if hasattr(view, 'HEAD'): return view.HEAD(REQUEST, RESPONSE) raise MethodNotAllowed, ('Method not supported for this resource.') raise NotFound, 'The requested resource does not exist.'
def HEAD(self, REQUEST, RESPONSE): """Retrieve resource information without a response body. """ self.dav__init(REQUEST, RESPONSE) # Note that we are willing to acquire the default document # here because what we really care about is whether doing # a GET on this collection / would yield a 200 response. view = None putils = getToolByName(self, 'plone_utils') obj, pages = putils.browserDefault(self) if pages is not None and pages: view = getattr(self, pages[0]) if isinstance(view, (MethodType, FunctionType)): # Ignore methods view = None if view is None: # Try to find a action (view) try: from Products.CMFCore.utils import _getViewFor view = _getViewFor(self) except (ImportError, Unauthorized, 'Unauthorized', 'Not Found'): pass if view is not None: if hasattr(view, 'HEAD'): return view.HEAD(REQUEST, RESPONSE) raise MethodNotAllowed, ( 'Method not supported for this resource.' ) raise NotFound, 'The requested resource does not exist.'
def __call__(self): """ Invoke the default action. """ view = _getViewFor(self) if getattr(aq_base(view), 'isDocTemp', 0): return view(self, self.REQUEST) else: return view()
def __call__(self): ''' Invokes the default view. ''' view = _getViewFor(self) if getattr(aq_base(view), 'isDocTemp', 0): return view(self, self.REQUEST, self.REQUEST['RESPONSE']) else: return view()
def __call__(self): ''' Invokes the default view. ''' view = _getViewFor(self) if getattr(aq_base(view), 'isDocTemp', 0): return apply(view, (self, self.REQUEST)) else: return view()
def __call__( self ): """ Invoke the default action. """ view = _getViewFor( self ) if getattr( aq_base( view ), 'isDocTemp', 0 ): return view(self, self.REQUEST) else: return view()
def test_processActions(self): """ Are the correct, permitted methods returned for actions? """ self.root._setObject('portal', PortalFolder('portal', '')) portal = self.root.portal portal.invokeFactory('Dummy', 'actions_dummy') dummy = portal._getOb('actions_dummy') # so we can traverse to it: dummy.view = DummyMethod("view") dummy.view2 = DummyMethod("view2") dummy.edit = DummyMethod("edit") default_view = dummy() custom_view = utils._getViewFor(dummy, view='view2')() unpermitted_view = utils._getViewFor(dummy, view='edit')() assert default_view == 'view' assert custom_view == 'view2' assert unpermitted_view != 'edit' assert unpermitted_view == 'view'
def test_processActions( self ): """ Are the correct, permitted methods returned for actions? """ self.root._setObject( 'portal', PortalFolder( 'portal', '' ) ) portal = self.root.portal portal.invokeFactory( 'Dummy', 'actions_dummy' ) dummy = portal._getOb( 'actions_dummy' ) # so we can traverse to it: dummy.view = DummyObject("view") dummy.view2 = DummyObject("view2") dummy.edit = DummyObject("edit") default_view = dummy() custom_view = _getViewFor( dummy, view='view2' )() unpermitted_view = _getViewFor( dummy, view='edit' )() self.failUnlessEqual(default_view, 'view') self.failUnlessEqual(custom_view, 'view2') self.failIf(unpermitted_view == 'edit') self.failUnlessEqual(unpermitted_view, 'view')
def test_processActions(self): """ Are the correct, permitted methods returned for actions? """ self.root._setObject('portal', PortalFolder('portal', '')) portal = self.root.portal portal.invokeFactory('Dummy Content', 'actions_dummy') dummy = portal._getOb('actions_dummy') # so we can traverse to it: dummy.view = DummyObject("view") dummy.view2 = DummyObject("view2") dummy.edit = DummyObject("edit") default_view = dummy() custom_view = _getViewFor(dummy, view='view2')() unpermitted_view = _getViewFor(dummy, view='edit')() self.failUnlessEqual(default_view, 'view') self.failUnlessEqual(custom_view, 'view2') self.failIf(unpermitted_view == 'edit') self.failUnlessEqual(unpermitted_view, 'view')
def test_processActions( self ): """ Are the correct, permitted methods returned for actions? """ self.root._setObject( 'portal', PortalFolder( 'portal', '' ) ) portal = self.root.portal portal.invokeFactory( 'Dummy', 'actions_dummy' ) dummy = portal._getOb( 'actions_dummy' ) # so we can traverse to it: dummy.view = DummyMethod("view") dummy.view2 = DummyMethod("view2") dummy.edit = DummyMethod("edit") default_view = dummy() custom_view = utils._getViewFor( dummy, view='view2' )() unpermitted_view = utils._getViewFor( dummy, view='edit' )() assert default_view == 'view' assert custom_view == 'view2' assert unpermitted_view != 'edit' assert unpermitted_view == 'view'
def test_processActions( self ): """ Are the correct, permitted methods returned for actions? """ site = self.site portal = site._setObject( 'portal', PortalFolder(id='portal') ) portal.manage_addProduct = { 'FooProduct' : DummyFactory(portal) } portal.invokeFactory( 'Dummy Content', 'actions_dummy' ) dummy = portal._getOb( 'actions_dummy' ) # so we can traverse to it: dummy.view = DummyObject("view") dummy.view2 = DummyObject("view2") dummy.edit = DummyObject("edit") default_view = dummy() custom_view = _getViewFor( dummy, view='view2' )() unpermitted_view = _getViewFor( dummy, view='edit' )() self.failUnlessEqual(default_view, 'view') self.failUnlessEqual(custom_view, 'view2') self.failIf(unpermitted_view == 'edit') self.failUnlessEqual(unpermitted_view, 'view')
def __call__( self ): """ Invoke the default action. """ ti = self.getTypeInfo() method_id = ti and ti.queryMethodID('(Default)', context=self) if method_id: method = getattr(self, method_id) else: method = _getViewFor(self) if getattr(aq_base(method), 'isDocTemp', 0): return method(self, self.REQUEST) else: return method()
def __call__(self): """ Invoke the default action. """ ti = self.getTypeInfo() method_id = ti and ti.queryMethodID('(Default)', context=self) if method_id: method = getattr(self, method_id) else: method = _getViewFor(self) if getattr(aq_base(method), 'isDocTemp', 0): return method(self, self.REQUEST) else: return method()
def test_processActions(self): """ Are the correct, permitted methods returned for actions? """ site = self.site portal = site._setObject('portal', PortalFolder(id='portal')) portal.manage_addProduct = {'FooProduct': DummyFactory(portal)} portal.invokeFactory('Dummy Content', 'actions_dummy') dummy = portal._getOb('actions_dummy') # so we can traverse to it: dummy.view = DummyObject("view") dummy.view2 = DummyObject("view2") dummy.edit = DummyObject("edit") default_view = dummy() self._trap_warning_output() custom_view = _getViewFor(dummy, view='view2')() unpermitted_view = _getViewFor(dummy, view='edit')() self.failUnlessEqual(default_view, 'view') self.failUnlessEqual(custom_view, 'view2') self.failIf(unpermitted_view == 'edit') self.failUnlessEqual(unpermitted_view, 'view')
def _macro_renderer(self, macro, template=None, **kw): """render approved macros""" try: if not template: view = _getViewFor(self.context) macro = view.macros[macro] else: template = self.context.restrictedTraverse(path=template) macro = template.macros[macro] except ConflictError: raise except: import traceback traceback.print_exc() return '' econtext = createContext(self.context, **kw) return macro_render(macro, self.context, econtext, **kw)