Python 根据授权更改禁止的视图
我想要两个403禁书。如果用户未经授权,则显示带有登录表单的页面。如果用户获得授权,则显示一个页面,告诉他们不允许查看该页面 看起来,金字塔的Python 根据授权更改禁止的视图,python,pyramid,Python,Pyramid,我想要两个403禁书。如果用户未经授权,则显示带有登录表单的页面。如果用户获得授权,则显示一个页面,告诉他们不允许查看该页面 看起来,金字塔的effective\u principals就是解决这个问题的方法。然而,我似乎无法找到正确的方法来利用它。以下是我正在做的: from pyramid.security import Authenticated @forbidden_view_config(containment=MyClass, renderer='login.pt') def n
effective\u principals
就是解决这个问题的方法。然而,我似乎无法找到正确的方法来利用它。以下是我正在做的:
from pyramid.security import Authenticated
@forbidden_view_config(containment=MyClass, renderer='login.pt')
def not_found(context, request):
return dict()
@forbidden_view_config(containment=MyClass, effective_principals=Authenticated)
def not_found(context, request):
return Response('Not allowed.')
但是,我得到一个错误:
PredicateMismatch:未找到视图的谓词不匹配(有效的\u主体=['system.Authenticated'])
在
禁止视图内
可以设置如下条件:
if authenticated_userid(request):
return HTTPFound(location=request.route_url('forbidden_logged_in'))
因此,已登录和未登录的用户都将通过金字塔重定向到此页面,然后金字塔将已登录的用户重定向到另一个页面,顺便说一句,可以通过以下方式进行保护:
@view_config(route_name='forbidden_logged_in', permission='user')