def get_response(request, model, predicates=None): view = generic.view.component(request, model, lookup=request.lookup, predicates=predicates, default=None) if view is None: return None if view.permission is not None and not generic.permits( request.identity, model, view.permission, lookup=request.lookup ): raise HTTPForbidden() content = view(request, model) if isinstance(content, BaseResponse): # the view took full control over the response return content # XXX consider always setting a default render so that view.render # can never be None if view.render is not None: response = view.render(content) else: response = Response(content, content_type="text/plain") request.run_after(response) return response
def get_response(request, model): view = generic.view.component( request, model, lookup=request.lookup, default=None) if view is None: return None if not generic.permits(request.identity, model, view.permission, lookup=request.lookup): # XXX needs to become forbidden? raise Unauthorized() content = view(request, model) if isinstance(content, BaseResponse): # the view took full control over the response return content # XXX consider always setting a default render so that view.render # can never be None if view.render is not None: response = view.render(content) else: response = Response(content) return response