在烧瓶原则中需要多个要求

时间:2013-08-14 04:21:22

标签: python python-2.7 flask flask-principal

我正在使用flask principal,最新版Flask-Principal(0.4.0)
我有一定的网址路线,例如 gpsData,报告,条目

个别路线可以通过多个用户角色查看 网址------------角色
gpsData - admin,记者,客户端
报告 - 管理员,记者
entry - admin,client,data_entry
例如

@login_module.route('/gpsData')
@admin.require()
@reporter.require()
@client.require()
def gpsData():
    return "only admin, reporter and client can view"  

@login_module.route('/reports')
@admin.require()
@reporter.require()
def reports():
    return "only admin and reporter can view"

@identity_loaded.connect_via(app)
def on_identity_loaded(sender, identity):
    #identity.provides.add(RoleNeed('report'))  
    identity.provides.add(RoleNeed(identity.id))

一次只有一个需要似乎有效,就像在这种情况下“reporter.require”才有效。如果使用admin id登录,则会产生错误。

更新

同样在模板中,我只想显示只能由特定用户角色查看的网址。

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用union?

admin_reporter_permission = admin_permission.union(reporter_permission)