【发布时间】:2012-02-25 21:27:30
【问题描述】:
我开始使用 Pyramid 框架(伟大的框架),我已经到了用户授权的地步。我想利用 ACL 来阻止已经登录的用户访问注册页面。显然,我可以通过其他方式做到这一点,但我想知道是否有任何方法可以使用金字塔中的工具来做到这一点。
我知道,通过向视图添加权限,不符合条件的用户将被显示为禁止视图。就我而言,我只是想重新路由已经是会员的用户远离不适用于他们的视图(注册、登录等)。
我尝试__acl__ = [(Deny, Authenticated, 'guest')] 无济于事,因为它阻止了所有用户的登录页面。
另外,在某种程度上,有没有办法动态地改变路线。我希望登录用户的主页与访客的主页不同。
【问题讨论】:
-
Pyramid 的身份验证系统非常灵活,这就是您难以理解的原因。我无法从 ACL 的单个 sn-p 中真正告诉您您做错了什么,但我可以告诉您,如果您打开
pyramid.debug_authentication,它将有助于了解您的身份验证策略返回了哪些主体。 -
谢谢迈克尔。所以我假设我确实用我输入的 sn-p 朝着正确的方向前进?
-
另外,当禁止视图被调用时,有没有办法获取被调用的初始请求,以便我可以采取相应的行动并重定向到正确的页面?
-
我添加了一个可以解决您的问题的答案。
标签: python authorization acl pyramid