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 を参照してください。
より複雑なケースでは、カスタム フィルター クエリを記述する必要があります。このオプションが必要です:)。
アップデート
解決策を見つけました。更新された回答を参照してください。