1
我正在关注Flask-potion教程并尝试保护我的api。我试图弄清楚如何在用户端点上设置权限,以便用户无法查看其他用户的记录。这里是我的代码:Flask-Potion + Flask-Principal锁定用户资源
class UserResource(PrincipalResource):
class Meta:
model = User
permissions = {
'read': 'id'
}
class ArticleResource(PrincipalResource):
class Schema:
author = fields.ToOne('user')
class Meta:
model = Article
read_only_fields = ['author']
permissions = {
'create': 'editor',
'update': ['user:author', 'admin']
}
我需要一个自定义权限来做到这一点?看起来这将是一种常见的情况。
我有点困惑与本 - 是否有一个原因ItemNeed第一酒店在这种情况下被命名为“读”?这就是绊倒我的原因。另外由于某种原因,当我实现这样的东西,并去我没有访问的资源,我得到一个404?那是对的吗? – DaBeeeenster
@DaBeeeenster Flask-Principals item-needs是'(method,value,model)'的三倍。您引用的ItemNeed允许读取用户模型。有一个待定的PR用于简化这个:从下一个版本开始,或者'user:$ id''将解析为UserNeed。 – lyschoening
@DaBeeeenster 404是正确的回应。如果你返回400,它将允许人们监视他们无法访问的资源ID。 – lyschoening