编程语言
首页 > 编程语言> > python-如何获取权限附加到金字塔中的调用视图?

python-如何获取权限附加到金字塔中的调用视图?

作者:互联网

在我的禁止视图中,如果所有成员访问访客页面,我想将所有成员重定向到他们的仪表板,如果他们访问成员页面,我想将所有访客重定向到登录页面.这很容易.

但是,在某些情况下,我需要引发HTTPForbidden错误,这不是权限失败的原因,而只是向用户显示原因.如何确定HTTPForbidden是权限失败还是其他原因导致的?我想我可以使用pyramid.security.has_permission做一些奇怪的事情(还没有尝试过),但是必须有一种更简单的方法.

2011年的一个老问题,据说它在待办事项清单How to check what permission failed in authorization in pyramid (pylons 2)?

解决方法:

我尚未对其进行测试,但是我想做的是在您手动执行此操作的地方提出除HTTPForbidden之外的其他内容.您甚至可以继承HTTPForbidden:

class WeDontLikeYourFace(HTTPForbidden):
    pass

def my_view(context, request):
    if request['face'] != 'beautyful':
        raise WeDontLikeYourFace("go away")

然后,您可以为自定义异常注册一个自定义视图,或者在为HTTPForbidden注册的通用视图方法中执行一些if / else事情.

您还可以将自定义字段添加到子类中,以传递所需的任何信息.

标签:pylons,pyramid,python
来源: https://codeday.me/bug/20191031/1979037.html