我正在尝试构建一个必须进行身份验证的网站,即如果用户未登录则只显示登录页面。问题是如何以最低的成本实现。我可以用
装饰每个视图permission='authenticated'
其中'authenticated'是我的许可的名称;但也许有一种更简单的方法,默认情况下所有视图都需要验证。
注意 我接受了下面的答案,但我相信还有更多内容。配置位:
config = Configurator(settings=settings,
default_permission='standard_view',
root_factory='RootFactory')
安全性 - 权限位:
class RootFactory(object):
__acl__ = [(Allow, Authenticated, 'standard_view'),
(Allow, 'g:admin', 'admin_view'),
]
答案 0 :(得分:2)
通过在 default_permission
对象中设置 Configurator
,可以做到这一点。例如,在 __ init __。py 中,您可以使用类似的内容:
from pyramid.config import Configurator
def main(global_config, **settings):
config = Configurator(settings=settings, default_permission='authenticated')
config.include('pyramid_chameleon')
config.scan()
return config.make_wsgi_app()
您可以在以下三个链接中找到更多信息: http://docs.pylonsproject.org/docs/pyramid/en/latest/api/config.html http://docs.pylonsproject.org/docs/pyramid/en/latest/narr/security.html#setting-a-default-permission http://docs.pylonsproject.org/docs/pyramid/en/latest/api/config.html#pyramid.config.Configurator.set_default_permission