コード例 #1
0
ファイル: core.py プロジェクト: pombredanne/morepath
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
コード例 #2
0
ファイル: core.py プロジェクト: webmaven/morepath
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