def get_public_view_registrations(self, site_manager): from opengever.task.response_syncer import BaseResponseSyncerReceiver for reg in self.get_adapter_registrations(site_manager): if reg.name == '': continue if reg.name in ALLOWED_ENDPOINTS: continue if not IBrowserView.implementedBy(reg.factory): continue if IBrowserSubMenuItem.implementedBy(reg.factory): continue if self.get_dottedname(reg) in WHITELIST: continue if len(reg.required) != 2: # Only context/request adapters are published. continue if issubclass(reg.factory, BaseResponseSyncerReceiver): # The BaseResponseSyncerReceiver._check_internal_request # makes sure that the request is an internal GEVER request. # Those requests must be public. continue permission_role = getattr(reg.factory, '__roles__', None) if permission_role is not None: continue if not self.get_factory(reg).__module__.startswith('opengever.'): continue yield reg
def get_public_view_registrations(self, site_manager): from opengever.task.response_syncer import BaseResponseSyncerReceiver for reg in self.get_adapter_registrations(site_manager): if reg.name == '': continue if reg.name in ALLOWED_ENDPOINTS: continue if not IBrowserView.implementedBy(reg.factory): continue if IBrowserSubMenuItem.implementedBy(reg.factory): continue if self.get_dottedname(reg) in WHITELIST: continue if len(reg.required) != 2: # Only context/request adapters are published. continue if issubclass(reg.factory, BaseResponseSyncerReceiver): # The BaseResponseSyncerReceiver._check_internal_request # makes sure that the request is an internal GEVER request. # Those requests must be public. continue permission_role = getattr(reg.factory, '__roles__', None) if permission_role is not None: continue if not self.get_factory(reg).__module__.startswith('opengever.'): continue yield reg
def page(_context, name, permission, for_=Interface, layer=interfaces.IFlourishLayer, title=None, subtitle=None, template=None, page_template=None, content_template=None, class_=Page, update='update', render='render', allowed_interface=(), allowed_attributes=(), **kwargs ): forward_methods = { 'update': update, 'render': render, } # BBB: add index to ease porting from old style views if (IBrowserView.implementedBy(class_) and getattr(class_, 'index', None) is None): forward_methods['index'] = render if not interfaces.IPage.implementedBy(class_): class_ = type(class_.__name__, (class_, Page), {}) allowed_interface = (tuple(allowed_interface) + (interfaces.IPage, )) class_dict = dict(kwargs) class_dict['__name__'] = name if title is not None: class_dict['title'] = title if subtitle is not None: class_dict['subtitle'] = subtitle # XXX: raise ConfigurationError if class_ is Page and # no templates specified templates = template_specs({ 'template': template, 'page_template': page_template, 'content_template': content_template, }, content_type='html') class_ = subclass_content( class_, name, forward_methods, templates, class_dict, ) handle_interfaces(_context, (for_,)) handle_interfaces(_context, allowed_interface) handle_security(class_, permission, allowed_interface, allowed_attributes) _context.action( discriminator=('view', for_, name, IBrowserRequest, layer), callable=zope.component.zcml.handler, args=('registerAdapter', class_, (for_, layer), Interface, name, _context.info), )
def page(_context, name, permission, for_=Interface, layer=interfaces.IFlourishLayer, title=None, subtitle=None, template=None, page_template=None, content_template=None, class_=Page, update='update', render='render', allowed_interface=(), allowed_attributes=(), **kwargs): forward_methods = { 'update': update, 'render': render, } # BBB: add index to ease porting from old style views if (IBrowserView.implementedBy(class_) and getattr(class_, 'index', None) is None): forward_methods['index'] = render if not interfaces.IPage.implementedBy(class_): class_ = type(class_.__name__, (class_, Page), {}) allowed_interface = (tuple(allowed_interface) + (interfaces.IPage, )) class_dict = dict(kwargs) class_dict['__name__'] = name if title is not None: class_dict['title'] = title if subtitle is not None: class_dict['subtitle'] = subtitle # XXX: raise ConfigurationError if class_ is Page and # no templates specified templates = template_specs( { 'template': template, 'page_template': page_template, 'content_template': content_template, }, content_type='html') class_ = subclass_content( class_, name, forward_methods, templates, class_dict, ) handle_interfaces(_context, (for_, )) handle_interfaces(_context, allowed_interface) handle_security(class_, permission, allowed_interface, allowed_attributes) _context.action( discriminator=('view', for_, name, IBrowserRequest, layer), callable=zope.component.zcml.handler, args=('registerAdapter', class_, (for_, layer), Interface, name, _context.info), )