我想根据 Python eve restframework 中用户的访问权限实现一个“更复杂”的过滤器。
问题
我们有令牌认证,用户帐户是在TokenAuth
类中获取的。用户有一些合同,每个合同都有账单。我想实现一个端点 /bills 来显示他的合同账单。我们使用mongodb
.
为了更好地理解,类似于 SQL 语句"SELECT * FROM bills WHERE bills.contract IN user.contracts"
user { contracts : ["a","b","c"] }
bills { contract: "a" }
背景资料
class TokenAuth(TokenAuthBase):
def check_auth(self, token, allowed_roles, resource, method):
users = app.data.driver.db['users']
TokenAuth.account = users.find_one(lookup)
...
(更新)
用户受限资源访问¶ (URRA)
对于用户 1 : n 账单关系的情况,URRA 将完成这项工作。请参阅python eve docs 中的 URRA。
在更复杂的情况下,有必要编写自定义过滤器查询。我需要这个选项:)。
更新
我找到了解决方案,请参阅更新的答案。